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

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

 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.

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

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

Любые пути, вот мой 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 ... я действительно не вижу, что это должно делать с этим, но я сделал это любыми способами.

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

 flayn07 сент. 2012 г., 17:12
Вы должны добавить это в качестве ответа и принять его.
 eran otzap22 мар. 2012 г., 00:34
хорошо, нам нужно присвоить атрибуту имени службы такое же точное имя, как и реализации, включая пространство имен <service name = "EmployeeManagerImplementation.EmployeeManagerService"> благодаря @Johann Blaisstackoverflow.com/questions/5270956/...
 eran otzap08 сент. 2012 г., 14:25
я поставил ссылку на ответ, который помог мне ... так же хорошо :)

Ответы на вопрос(4)

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

<service name="EmployeeManagerImplementation.EmployeeManagerService">

в котором размещается служба

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

 eran otzap15 июл. 2015 г., 09:22
почему вы думаете, что app.config не находится в правильном месте? даже я задал этот вопрос 3 года назад. Я просто прочитал это, и я не понимаю, как вы пришли к выводу, что это проблема. Мой первый комментарий описывает, как я решил это.
 Bassist02 авг. 2016 г., 07:09
Этот вопрос решил для меня. Причина в том, что я отделил сервисные контракты и установщик. Так что я не понял, что мой установщик службы тоже нуждается в настройке. Голосую за этот ответ.

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

который реализует интерфейс, т.е. интерфейс.

    namespace WCFDemo
{
    public interface IWorker
    {
    }
}

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

namespace WCFDemo
{
   public class WorkHere:Iworker
  {
  }
}

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

Ваш ответ на вопрос