Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight IIS应用池回收中的WCF双工服务问题_Silverlight_Wcf_Iis - Fatal编程技术网

Silverlight IIS应用池回收中的WCF双工服务问题

Silverlight IIS应用池回收中的WCF双工服务问题,silverlight,wcf,iis,Silverlight,Wcf,Iis,我在IIS中设置了WCF Silverlight(3)Http双工服务。在我在IIS中回收应用程序池之前,它工作得非常好 连接的SL客户端调用此双工服务上的方法,然后开始从web服务获取TimeoutExceptions/CommunicationExceptions。增加客户端的超时时间没有帮助 循环使用似乎不会终止服务器和客户端之间的底层(双工)http连接。 当客户端调用此服务上的方法时,IIS无法正确处理该方法 如果我在客户机上重新创建代理,一切都会恢复正常。但问题是,我如何知道需要重新

我在IIS中设置了WCF Silverlight(3)Http双工服务。在我在IIS中回收应用程序池之前,它工作得非常好

连接的SL客户端调用此双工服务上的方法,然后开始从web服务获取TimeoutExceptions/CommunicationExceptions。增加客户端的超时时间没有帮助

循环使用似乎不会终止服务器和客户端之间的底层(双工)http连接。 当客户端调用此服务上的方法时,IIS无法正确处理该方法

如果我在客户机上重新创建代理,一切都会恢复正常。但问题是,我如何知道需要重新建立与服务器的连接? 不 web上的所有示例只展示了如何处理断开连接的客户端,而不是在web服务被回收的情况下如何处理。完全重新启动IIS是可以的,因为在这种情况下http连接是关闭的


非常感谢您的任何意见。

这是预期行为。这就是双工http的工作原理。双工http通信使用可靠的会话。这意味着,在一个侧面关闭之前,一切都正常工作。如果AppPool被回收,运行的服务实例将被终止。下次客户端尝试与服务通信时,它无法访问它(实例已经不存在),但由于可靠的会话,它尝试了几次,然后抛出超时。超时后的唯一解决方案是中止当前代理,创建新的客户端代理并启动新的双工通信

我建议对任何严肃的WCF工作使用自托管,对于双工场景更是如此。自行托管WCF服务其实并不难,而且你也不会随意依赖AppPools回收之类的东西……是的,我也得出了同样的结论。我们现在正在捕获客户端上的异常并重新建立连接。