Ранее я спросил question, чтобы решить исключение SecurityNegotiationException при попытке получить доступ к службе WCF с удаленного компьютера. Это исключение было разрешено благодаря ответу ValtasarIII.Не удается подключиться к удаленной службе WCF - TimeoutException
Теперь у меня другая проблема. Я разместил свою службу на сервере и хочу подключиться к ней с помощью клиентского приложения. Но, когда я пытаюсь подписаться на службу из клиентского приложения, ничего не происходит, и в конце я получаю исключение:
The open operation did not complete within the allotted timeout of 00:00:59.9939996. The time allotted to this operation may have been a portion of a longer timeout.
(я могу разделить трассировки стека при необходимости)
Хотя, когда я попробуйте проверить, работает ли служба, я могу успешно получить доступ к ней через браузер с клиентской машины.
Вот мои конфигурации:
Сервис - web.config
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="wsHttpDual">
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<protocolMapping>
<add scheme="http" binding="wsDualHttpBinding" bindingConfiguration="wsHttpDual"/>
</protocolMapping>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Клиент - app.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_ISampleContract" clientBaseAddress="http://95.138.188.232:8000/myClient/">
<!--<security mode="Message">
<message clientCredentialType="Windows" algorithmSuite="Default" />
</security>-->
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://95.138.188.232/autofxtools/service.svc"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ISampleContract"
contract="ISampleContract" name="WSDualHttpBinding_ISampleContract">
<identity>
<servicePrincipalName value="host/95.138.188.232" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
Я искал решение, но ничего не имеет работал на меня. Конфигурация службы, похоже, не требует никаких требований безопасности. Но клиент с той же конфигурацией фактически работает с той же машины, что и Служба, но не с удаленной машины. Означает ли это, что по-прежнему существует аутентификация Windows (по умолчанию для wsDualHttpBinding)? Если да, то где я иду не так?
В ожидании положительного отзыва.
С уважением.
Да, я принимаю его через IIS. И, как я уже упоминал, я могу получить к нему доступ через браузер на клиентской машине –
Вы уверены, что URL-адрес службы в конфигурации клиента верен? 'http: // 95.138.188.232/autofxtools/service.svc' –
Кроме того, вы предоставляете« clientBaseAddress = »http://95.138.188.232:8000/myClient/« в конфигурации клиента »- это тоже правильно ? –