我在IIS中设置了WCF Silverlight(3) Http双工服务。在我回收IIS中的ApplicationPool之前,它工作得非常好。
连接的SL客户端随后调用此双工服务上的方法,然后开始从web服务获取TimeoutExceptions/CommunicationExceptions。增加客户端的超时时间无济于事。
回收似乎不会终止服务器和客户端之间的底层(双工) http连接。然后,当客户端调用此服务上的方法时,IIS无法正确处理它。
如果我在客户机上重新创建代理,一切都会正常工作。问题是,我怎么知道我需要重新建立到服务器的连接呢?并不是web上的所有示例都只展示了如何处理断开连接的客户端,而不是在web服务被回收的情况下该如何处理。完全重新启动IIS是可以的,因为在这种情况下http连接是关闭的。
我们非常感谢您的任何意见。
发布于 2010-09-23 17:05:31
这是预期的行为。这就是双工http的工作原理。双工http通信使用可靠会话。这意味着,在其中一端关闭之前,一切都运行良好。如果AppPool被回收,正在运行的服务实例将被终止。下一次客户端尝试与服务通信时,它无法访问它(实例已经不存在),但由于可靠的会话,它尝试了几次,然后抛出超时。超时后的唯一解决方案是中止当前代理,创建新的客户端代理,并开始新的双工通信。
https://stackoverflow.com/questions/3772849
复制相似问题