PollingDuplexHttpBinding

PollingDuplexHttpBinding

一段时间以来,我们一直在使用 PollingDuplexHttpBinding 来进行 Pub/Sub 消息传递。我们有一些不返回结果的方法,允许客户端订阅一些数据馈送,然后服务通过 CallBack 契约(Contract)将数据推回。

刚才我们已经在我们的 Request/Reply 中添加了一些 OperationContract 方法。由于客户端是 Silverlight 3,因此使用 async Begin() End() 模式调用这些方法。问题是我们无法使用 PollingDuplexHttpBinding 让它工作。我们总是收到以下错误(使用客户端堆栈 HTTP 时):



使用浏览器堆栈,我们得到 HTTP 500: Not Found.
当切换到 BasicHttpBinding 时,Request/Reply 方法被完全调用,但显然 Pub/Sub 方法不能与此绑定(bind)一起使用。

我们可以为每种类型的消息传递使用两个单独的端点,但我宁愿不这样做,而且绑定(bind)只支持 Pub/Sub 模式对我来说似乎很奇怪(即使这是 PollingDuplexHttpBinding 的动机)。

有人可以帮我解决这个问题吗?是否有可能?

最佳答案

我们从来没有让这个工作。我们将 BasicHttpBinding 用于 Silverlight 4 应用程序和 WCF 4 服务之间的所有请求/回复操作。这些都是对 Per-Call 服务的异步方法调用(必须使用 Silverlight)。对于我们必须执行服务器推送的几种情况,我们有一个 session WCF 服务维护一个到 Silverlight 客户端的 PollingDuplexHttpBinding 连接,我们使用带有单向方法的回调协定来进行调用。

永远无法让请求/回复操作与 PollingDuplexHttpBinding 一起工作,但也从未找到有关此事的权威......

关于WCF,Silverlight : Is Request/Reply possible over PollingDuplexHttpBinding?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2551366/

10-13 05:04