在生產服務器(Windows Server 2003 SP2)上,我可以使用Internet Explorer 8連接到遠程WCF服務:當瀏覽到URL http://www.domain.com/Service.svc(我的服務偵聽的地方)時,顯示所需服務的信息頁面。 Internet Explorer中的連接設置僅指定「自動檢測」,禁用代理設置。瀏覽器連接到WCF服務,但不是我的WCF客戶端。可能是什麼原因?
如果我在同一臺服務器上啓動一個控制檯應用程序(使用.NET 4.0中的WCF構建),該服務器也嘗試連接到相同的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客戶端將採用IE瀏覽器的「自動檢測」設置,然後以同樣的方式連接到像安裝了IE的服務。)
我也有切換在真實之間的綁定配置的useDefaultWebProxy
設置並沒有成功的假。
現在我正在尋求幫助,我可以做些什麼?哪些設置可能錯誤或丟失?我可以測試什麼?如何獲得更詳細的錯誤信息以更好地識別問題?
預先感謝您!
編輯:
堆棧中Innerexception
是說:
- System.Net.WebException:連接到遠程服務器無法建立
- 的System.Net.Sockets。 SocketException:連接失敗,因爲主機在一段時間後沒有應答,或連接出現故障,因爲連接的主機沒有回答。
我知道這個線程很舊,但我一直在遇到這個問題,並最終在這裏。我仍然不明白爲什麼「UsesSystemDefault = true」設置不起作用 - 如果邏輯成立,它應該導致WCF服務使用IE配置的代理設置 - 但它不是;代理地址仍然需要在WCF客戶端中顯式配置。任何人對此有解釋? – PIntag 2015-03-27 15:52:05