3

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

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

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

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

切换到BasicHttpBinding方法Request/Reply时调用完全没问题,但显然Pub/Sub方法不能与此绑定一起使用。

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

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

4

1 回答 1

2

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

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

于 2011-02-21T03:43:13.827 回答