我以前要求question在嘗試從遠程計算機訪問WCF服務時解決SecurityNegotiationException。由於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/」'也是正確的? –