我目前有一個帶有CallBack Contract(雙工)的WCF服務,當我使用在我的計算機上使用它的應用程序時,一切正常,但當我從另一臺計算機上嘗試它時,它不會連接。WCF:「無法打開System.ServiceModel.Channels.ClientReliableDuplexSessionChannel」
一旦我切換到使用此wsDualHttpBinding
(對於回調),因爲當我使用wsHttpBinding
時,一切正常。
爲什麼Web服務不接受來自其他計算機的請求?是否需要修改某些託管設置?
至於日誌,我得到這些:
alt text http://img17.imageshack.us/img17/4628/wcfissue.jpg
開放手術沒有的 00:01:00在規定的超時時間內完成 。分配給該 操作的時間可能是一個 更長的超時的一部分
無法打開System.ServiceModel.Channels.ClientReliableDuplexSessionChannel
斷陷 System.ServiceModel.Channels.ClientReliableDuplexSessionChannel
斷陷 System.ServiceModel.Channels.ServiceChannel
無法打開 System.ServiceModel.Channels.ServiceChannel
港是我的路由器(TCP和UDP)開放,這樣是不是問題。
至於服務屬性,這是我使用的是什麼:
接口:
[ServiceContract(Name = "MusicRepo_DBAccess_Service",
CallbackContract = typeof(IOnlineUsersCallback),
SessionMode=SessionMode.Required)]
服務:
[ServiceBehavior(
ConcurrencyMode=ConcurrencyMode.Reentrant,
InstanceContextMode=InstanceContextMode.Single)]
[更新]
至於Orion Edwards「後:
- 無防火牆
- 看點一
- 是的,我可以,因爲我有端口轉發在我的路由器
- 我使用IIS來託管服務器。
的事情是,這個問題開始發生的時候,我從wsHttpBinding
切換(這是工作的罰款),以wsDualHttpBinding
(因爲我需要回調)
[更新]
我現在已經從wsDualHttpBinding
切換到NetTcpBinding
,出於某種原因,一切工作正常。
我已經使用this article幫我建立託管在IIS和thankully一切工作正常,有回調。