На рабочем сервере (Windows Server 2003 с пакетом обновления 2) я могу подключиться к удаленной службе WCF с помощью Internet Explorer 8: при просмотре URL-адреса http://www.domain.com/Service.svc (где прослушивает моя служба) я получаю ожидаемую страницу с информацией услуги отображаются. В настройках подключения в Internet Explorer указывается только «автоопределение», настройки прокси отключены.
Если я запускаю консольное приложение (созданное с WCF в .NET 4.0) на том же сервере, который также пытается подключиться к той же службе WCF, оно не сообщает о том, что ни одна конечная точка не была доступна для прослушивания http://www.domain.com/Service.svc.
Конфигурация клиента WCF:
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://www.domain.com/Service.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService"
contract="Service.IMyService" name="WSHttpBinding_IMyService" />
</client>
</system.serviceModel>
<configuration>
С этими настройками я могу успешно обмениваться данными с удаленным сервисом с моей машины разработки.
Осматривая другие варианты, я обнаружил, что могу указать, использовать настройки прокси-сервера Internet Explorer с помощью:
<system.net>
<defaultProxy>
<proxy usesystemdefault="true" />
</defaultProxy>
</system.net>
Это не сработало, и я не уверен, правильно ли я понял эту настройку. (Я надеялся, что клиент WCF примет параметр «автоопределение» Internet Explorer, а затем подключится к службе таким же образом, как установленный IE.)
Я также переключил настройку useDefaultWebProxy
в конфигурации привязки между true и false, но безуспешно.
Теперь я прошу помощи, что я могу сделать? Какие настройки могут быть неправильными или отсутствующими? Что можно проверить и как получить более подробные сообщения об ошибках, чтобы лучше определить проблему?
Заранее спасибо!
Edit:
Стек в Innerexception
говорит:
- System.Net.WebException : не удалось установить соединение с удаленным сервером
- System.Net.Sockets.SocketException : Соединение не удалось, поскольку хост не ответил после определенного промежутка времени, или соединение было прервано, так как подключенный хост не ответил.