WCF,Silverlight:通过PollingDuplexHttpBinding可以请求/回复吗?

时间:2010-03-31 08:15:23

标签: wcf silverlight pollingduplexhttpbinding

我们已经使用PollingDuplexHttpBinding一段时间来发送Pub/Sub消息。我们的方法不返回允许客户订阅某些数据馈送的结果,然后服务通过CallBack合同将数据推回。

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

  

服务器未提供有意义的回复;这可能是由于合同不匹配,过早的会话关闭或内部服务器错误造成的。

使用浏览器堆栈,我们得到HTTP 500: Not Found.

切换到BasicHttpBinding时,Request/Reply方法被称为完全正常,但显然Pub/Sub方法无法与此绑定一起使用。

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

有人可以为我清除这个吗?有可能吗?

1 个答案:

答案 0 :(得分:2)

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

永远无法获得使用PollingDuplexHttpBinding的请求/回复操作,但从未在此事上找到权限......