У меня есть сервер WCF, который я могу запустить как сервис или как приложение для форм Windows. Когда я запускаю его как приложение Windows Forms, я могу подключиться к нему через мое клиентское приложение. Однако, когда я запускаю его как службу с использованием того же кода, я не могу подключиться к нему. Я подтвердил, что служба работает и выполняет свою работу. Ниже приведен файл конфигурации сервера.WCF работает как приложение, но не как сервис
<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>
Где вы запускаете код хостинга? – Grzenio
Являются ли клиент и сервер на одной машине? Интересно, что «localhost» не является частью проблемы ... удаленный клиент не будет запрашивать «localhost» ... –
Они находятся на одной машине. Опять же он работает как приложение, но не как сервис. –