代码之家  ›  专栏  ›  技术社区  ›  Andreas Grech

wcf:“未能打开System.ServiceModel.Channels.ClientReableDuplexSessionChannel”

  •  4
  • Andreas Grech  · 技术社区  · 15 年前

    我现在有一个带回调协定(双工)的WCF服务,当我在我的计算机上使用它的应用程序时,一切都正常,但是当我从另一台计算机上尝试它时,它不连接。

    当我开始使用这个的时候,这些问题就开始出现了 wsDualHttpBinding (回拨电话)因为当我使用 wsHttpBinding 一切正常。

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


    关于日志,我收到了:

    alt text http://img17.imageshack.us/img17/4628/wcfissue.jpg

    打开操作未完成 在分配的超时内 00点01分。分配给这个的时间 操作可能是 超时超时

    无法打开System.ServiceModel.Channels.ClienReliableDuplexSessionChannel

    断裂的 system.serviceModel.channels.clientReliableDuplexSessionChannel

    断裂的 系统.serviceModel.channels.serviceChannel

    打开失败 系统.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 邮报:

    • 无防火墙
    • 见第1点
    • 是的,我可以,因为我在路由器上转发了端口
    • 我正在使用IIS托管服务器。

    问题是,当我从 WSHTPTP-绑定 (工作正常)到 wsdualhttpbinding(wsdualhttpbinding) (因为我需要回电)


    [更新]

    我现在已经从 wsdualhttpbinding(wsdualhttpbinding) NetTcpBinding 出于某种原因,一切都很好。

    我已经用过 this article 为了帮助我在IIS上设置主机,感谢您,一切都按预期工作,并进行了回调。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Andreas Grech    15 年前

    我现在已经从 wsDualHttpBinding NetTcpBinding 出于某种原因,一切都很好。

    我已经用过 this article 为了帮助我在IIS上设置主机,感谢您,一切都按预期工作,并进行了回调。

        2
  •  1
  •   Jonathan Parker    15 年前

    如果您发布了服务器和客户机配置设置,这将有所帮助。

    以下是wsdualhttpbinding如何工作的摘要 MSDN (强调我的):

    wsdualhttpbinding提供 对Web服务协议的支持相同 作为wshttpbinding,但用于 复式合同。wsdualhttpbinding(wsdualhttpbinding) 仅支持SOAP安全和 需要可靠的消息传递。 这个 绑定要求客户端具有 提供回调的公共URI 服务的终结点。这是 由clientbaseaddress提供 属性。 双重绑定公开了 客户端到的IP地址 服务。客户应使用 安全以确保 连接到它信任的服务。

    此绑定可用于 通过一个或 更多的SOAP中介。

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

        3
  •  0
  •   Orion Edwards    15 年前

    检查事项:

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