Подтвердить что ты не робот

Служба '' имеет нулевые приложения (неинфраструктурные) конечные точки

Я продолжаю получать необъяснимое исключение

 Service 'EmployeeManagerImplementation.EmployeeManagerService' has zero application (non-infrastructure) 
 endpoints. This might be because no configuration file was found for your application, 
 or because no service element matching the service name could be found in the configuration file,   or because no endpoints were defined in the service element.

iv'е сталкиваются с другими сообщениями, которые решили эту проблему, но никто, кажется, не имеет точного ответ, и не их решения работали для меня.

Служба имеет нулевые конечные точки приложения (без инфраструктуры)

любым способом здесь мой app.config

 <system.serviceModel>
    <services>
        <service name="Some.Test.EmployeeManagerService">
            <endpoint address="net.tcp://localhost:8080/Service" binding="netTcpBinding"
                bindingConfiguration="" contract="Contracts.IEmployeeManagerService" />
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
        </service>
    </services>
</system.serviceModel>

Мой контракт:

[ServiceContract(Namespace="Some.Test")]
public interface IEmployeeManagerService
{
    [OperationContract]
    string Test();    
}

Моя служба:

public class EmployeeManagerService : IEmployeeManagerService
{
    public string Test()
    {
        return "test";
    }
}

в соответствующей должности люди советуют предоставить Контракту пространство имен и использовать его в качестве префикса в моем app.config для имени на вкладке службы.

также было предложено разоблачить конечную точку mex... я действительно не понимаю, что это с этим связано, но я сделал это по-любому.

так что любые идеи о том, почему это происходит? и как реально решить эту проблему?

4b9b3361

Ответ 1

С вашего собственного комментария:

Установите атрибут имени службы на то же имя, что и реализация, включая пространство имен

<service name="EmployeeManagerImplementation.EmployeeManagerService">

Ответ 2

Скопируйте app.config из службы в консольное приложение, в котором находится служба

Если вы создали службу как проект библиотеки классов и используете консольное приложение для ее размещения, просто скопируйте файл app.config из службы в консольное приложение

Ответ 3

Имя службы должно быть таким же, как файл класса, реализующий интерфейс i.e Interface.

    namespace WCFDemo
{
    public interface IWorker
    {
    }
}

и предположим, что вы внедрили его как

namespace WCFDemo
{
   public class WorkHere:Iworker
  {
  }
}

Тогда имя службы будет  <service name="WCFDemo.WorkHere">

Ответ 4

Для моей проблемы я также правильно установил все пространства имен. Но то, что мне не удалось сделать, это добавить конечную точку basicHttpBinding для самой службы. См. эту статью MSDN, первую часть XML-конфигурации для примера.