C# 世界粮食基金会:;无法打开System.ServiceModel.Channel.ClientReliableDuplexSessionChannel";

C# 世界粮食基金会:;无法打开System.ServiceModel.Channel.ClientReliableDuplexSessionChannel";,c#,wcf,web-services,timeout,wcf-binding,C#,Wcf,Web Services,Timeout,Wcf Binding,我目前有一个带有回调协定(双工)的WCF服务,当我在我的计算机上使用这个应用程序时,一切正常,但当我在另一台计算机上尝试它时,它无法连接 当我切换到使用这个wsDualHttpBinding(用于回调)时,这些问题就开始出现了,因为当我使用wsHttpBinding时,一切都很好 为什么web服务不接受来自其他计算机的请求?是否需要修改某些主机设置 关于日志,我得到了以下信息: 打开操作未完成 在分配的超时时间内 00:01:00. 分配给这个的时间 操作可能是一个过程的一部分 更长的超时时

我目前有一个带有回调协定(双工)的WCF服务,当我在我的计算机上使用这个应用程序时,一切正常,但当我在另一台计算机上尝试它时,它无法连接

当我切换到使用这个
wsDualHttpBinding
(用于回调)时,这些问题就开始出现了,因为当我使用
wsHttpBinding
时,一切都很好

为什么web服务不接受来自其他计算机的请求?是否需要修改某些主机设置


关于日志,我得到了以下信息:

打开操作未完成 在分配的超时时间内 00:01:00. 分配给这个的时间 操作可能是一个过程的一部分 更长的超时时间

无法打开System.ServiceModel.Channel.ClientReliableDuplexSessionChannel

错误的 System.ServiceModel.Channel.ClientReliableDuplexSessionChannel

错误的 System.ServiceModel.Channel.ServiceChannel

无法打开 System.ServiceModel.Channel.ServiceChannel


我的路由器上的端口(TCP和UDP)是打开的,所以这不是问题所在

关于服务属性,我使用的是:

接口:

服务:


[更新]

至于"职位:

  • 没有防火墙
  • 见第1点
  • 是的,我可以,因为我在路由器上转发了端口
  • 我正在使用IIS托管服务器
问题是,当我从
wsHttpBinding
(工作正常)切换到
wsDualHttpBinding
(因为我需要回调)时,这个问题就开始出现了


[更新]


我现在已经从
wsDualHttpBinding
切换到
NetTcpBinding
,出于某种原因,一切都很正常

我曾经帮助我在IIS上设置主机,谢天谢地,通过回调,一切都正常工作。

需要检查的事项:

  • Windows防火墙
  • 您的防病毒产品的防火墙
  • 你能从远程机器远程登录端口吗
  • 您的“服务器”是否在ASP.NET开发服务器下运行?这将只接受来自本地主机的请求-您需要使用
    ServiceHost
    自托管服务器或在IIS下托管服务器

我现在已经从
wsDualHttpBinding
切换到
NetTcpBinding
,出于某种原因,一切正常


我曾经帮助我在IIS上设置主机,谢天谢地,通过回调,一切都按预期进行。

如果您发布服务器和客户端配置设置,将会有所帮助

以下是wsDualHttpBinding如何工作的摘要(我的重点是):

WSDualHttpBinding提供 同样支持Web服务协议 作为WSHttpBinding,但用于 双重合同。WSDualHttpBinding 仅支持SOAP安全性和 需要可靠的消息传递这个 绑定要求客户端具有 提供回调的公共URI 服务的端点。这是 由clientBaseAddress提供 属性。双重绑定公开 客户端到服务器的IP地址 服务客户应该使用 安全性,以确保 连接到它信任的服务

此绑定可用于 通过一个或多个网络进行可靠通信 更多的SOAP中介

默认情况下,此绑定生成 运行时堆栈 WS-ReliableMessaging的可靠性, WS-Security用于消息安全和 身份验证,用于消息的HTTP 传递和文本/XML消息 编码

[ServiceContract(Name = "MusicRepo_DBAccess_Service", 
                 CallbackContract = typeof(IOnlineUsersCallback),
                 SessionMode=SessionMode.Required)]
[ServiceBehavior(
        ConcurrencyMode=ConcurrencyMode.Reentrant, 
        InstanceContextMode=InstanceContextMode.Single)]