Я создаю интерфейс службы WCF для существующего процесса службы Windows. Целью интерфейса WCF является предоставление «Командного канала» для реализации административных возможностей для службы Windows. Определено несколько методов OperationContract, предназначенных для извлечения информации и управления поведением службы Windows, выходящей далеко за пределы возможности запуска / остановки / паузы апплета Services.
Эта служба WCF предназначена для того, чтобы быть частью существующего процесса. Таким образом, запуск службы WCF в IIS или ServiceHost невозможен.
Моя проблема заключается в том, что хотя ServiceHost не выдает ошибку в Open (), я не могу получить "WCF Test Client" (или что-либо еще) для поиска службы.
Это моя первая Служба WCF, и у меня возникли проблемы с поиском примеров или шаблонов, которые соответствуют тому, что я пытаюсь сделать. Так что у меня нет иллюзий, и я не удивлюсь, если сделаю много неправильно. Кроме того, не то, что у меня есть 'portSharingBinding = false'. У меня действительно было это, но это выдавало ошибку, которая указала на другой сервис, который я не хочу запускать.
Требуется ли совместное использование портов?
Информация о конфигурации:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="PortBinding" portSharingEnabled="false" />
</netTcpBinding>
</bindings>
<services>
<service name="NameChanged.ServiceManager.CommandService">
<endpoint address="net.tcp://localhost"
binding="netTcpBinding"
bindingConfiguration="PortBinding"
name="ServiceManagerCommandChannel"
contract="NameChanged.ServiceManager.ICommandService" />
</service>
</services>
</system.serviceModel>
Я также попробовал маршрут no config, используя следующий код:
ServiceHost host = new ServiceHost(typeof(CommandService)))
host.AddServiceEndpoint(typeof(ICommandService),
new NetTcpBinding(), "net.tcp://localhost:8000");
host.Open();
Также нет ошибок в Open (). Но безуспешное подключение к услуге.
Спасибо за ваше время,
Jim