如果我不关闭WCF / ASMX代理有多糟糕?

时间:2009-12-28 14:01:56

标签: wcf wcf-proxy

所以有人(好吧是我)没有意识到你需要在使用后关闭WCF代理。

这有多糟糕?它会导致什么样的问题。

由于垃圾收集,关闭资源是否只是延迟 - 或者我是否真的担心应用程序池过早回收等问题?

实际上我遇到的ASMX比WCF代理要多得多 - 所以同样的问题也适用于ASMX。

显然,现在我知道这个我会逐渐修复它,但是会很感激输入这个有多糟糕吗?

3 个答案:

答案 0 :(得分:4)

WCF服务具有默认超时。如果您不关闭它,服务将等到超时。

WCF还有一个最大并发呼叫,默认值为10.

因此,如果您不关闭连接,则每分钟只能进行10次呼叫。 (假设默认设置)

以下是有类似问题的人:

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/d58ee1c6-032b-40f3-b734-6628f3991bb2/

答案 1 :(得分:2)

您可以安全地重复使用WCF连接,只需要额外注意检查它是否处于故障状态。

答案 2 :(得分:2)

作为一般指南,当您希望逐步修复此问题时,请不要使用using语句包装您的代理,我看到很多人这样做,我一直这样做我读了IDesign的一篇文章,这样做可能会导致Dispose抛出异常并掩盖一个真正的异常,在try / catch中显式关闭你的代理,如果close导致异常,则使用Abort进行资源清理。 / p>

编辑:如下面的评论所述,这适用于WCF代理。