У меня есть WCF-сервер, который я могу запускать как службу или как приложение Windows Forms. Когда я запускаю его как приложение Windows Forms, я могу подключиться к нему через свое клиентское приложение. Однако, когда я запускаю его как сервис с использованием того же кода, я не могу подключиться к нему. Я подтвердил, что служба работает и выполняет свою работу. Ниже приведен файл конфигурации сервера.
<system.serviceModel>
<services>
<service name="Cns.TrafficCopService.ManagementService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/TrafficCop/ManagementService" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" contract="Cns.TrafficCopService.IManagementService" />
</service>
</services>
</system.serviceModel>
и его код хостинга, называемый через 100 миллисекунд после вызова OnStart:
if (this.serviceHost != null)
{
this.serviceHost.Close();
}
this.serviceHost = new ServiceHost(typeof(ManagementService));
this.serviceHost.Open();
и файл конфигурации клиента:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IManagementService" />
</wsHttpBinding>
</bindings>
<client>
<endpoint
address="http://localhost:8000/TrafficCop/ManagementService"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IManagementService"
contract="IManagementService"
name="WSHttpBinding_IManagementService">
</endpoint>
</client>
</system.serviceModel>