我目前有一个带有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一切工作正常,有回调。