我们使用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模式(尽管这是PollingDuplexHttpBinding的动机)。
有人能帮我澄清一下吗?有可能吗?
发布于 2011-02-21 03:43:13
我们从来没有让这件事起作用。我们在Silverlight 4应用程序和WCF 4服务之间的所有请求/回复操作中都使用BasicHttpBinding。这些都是对每次调用服务的异步方法调用(必须与Silverlight一起使用)。对于必须进行服务器推送的几种情况,我们有一个Sessionful服务,它维护到Silverlight客户端的PollingDuplexHttpBinding连接,我们使用带有单向方法的回调合同进行调用。
无法让请求/回复操作与PollingDuplexHttpBinding一起工作,但也没有在此问题上找到权威.
https://stackoverflow.com/questions/2551366
复制相似问题