【问题标题】:WCF Callback Service hosted over basicHttpBinding and wsDualHttpBinding通过 basicHttpBinding 和 wsDualHttpBinding 托管的 WCF 回调服务
【发布时间】:2010-09-20 17:10:15
【问题描述】:

我有一个通过 wsDualHttpBinding 托管的回调服务。我正在寻找一个将轮询数据而不是接收回调的客户端(将是一个使用 wince 进行演示的移动设备)。我很好奇最好的方法是什么?您不能使用 NetCFSvcUtil 和 wsDualHttpBinding 托管的服务创建客户端代理(我理解),但您不能通过 basicHttpBinding 托管回调服务。我真的需要托管在 basicaHttpBinding(客户端将轮询数据)和 wsDualHttpBinding(回调将通知客户端数据)上的相同服务。关于在不创建两个单独的服务来托管相同数据的情况下处理此问题的最佳方法的任何想法?

【问题讨论】:

    标签: wcf callback basichttpbinding wsdualhttpbinding


    【解决方案1】:

    托管相同数据的两个独立服务是什么意思?您是否希望共享同一个服务实例来处理 wsDualHttpBinding 和 basicHttpBinding 请求?

    您当前的问题是用于双工通信的服务接口不能用于basicHttpBinding。您必须创建第二个服务合同并在同一服务中实施它。在这种情况下,您可以为服务公开两个端点:一个带有 WSDualHttpBinding 的双工,一个带有 BasicHttpBinding 的双工。端点必须具有不同的相对地址。从客户端的角度来看,这些端点是单独的服务——它们中的每一个都需要单独的客户端代理。因此,除非您的服务是单例的,否则您将为每个客户端代理拥有新的服务实例。新的服务实例意味着没有数据共享。

    有一些修改此行为的可能性,但这意味着替换实例提供程序。

    【讨论】:

    • 谢谢。同一服务的多个服务合同似乎是我所缺少的。我希望我的服务是单例服务,并且使用回调服务的客户端似乎没有与使用非回调服务合同的客户端“共享”数据。不管客户使用什么合同,服务不应该持有相同的数据吗?我有 InstanceContextMode = InstanceContextMode.Single 并且在客户端共享相同的服务合同之前它正在工作。感谢您的帮助。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多