当涉及到 WCF 代理时,我始终遵循 try/Close/catch/Abort 的指导。我现在面临一个代码库,它在 MVC 控制器中创建代理并让它们超出范围。我认为我们需要编辑代码库以使用 try/Close/catch/Abort 但存在阻力。
有谁知道我可以捕获一个指标(例如 perfmon)来说明问题/好处。或者是一份明确的参考资料,阐明了无人能质疑的问题/好处?
您可以创建一个示例应用程序来模拟该问题。虽然我没试过你可以试试这个
创建一个简单的服务并限制maxConcurrentCalls
and maxConcurrentSessions
to 5.
创建一个客户端应用程序,然后在其中调用服务方法而不关闭连接。
启动 6 个或更多客户端
看看当您从客户端打开新连接时会发生什么。客户可能会等待一段时间,然后您会遇到一些异常。
如果客户端没有正确关闭连接,连接仍将在服务中保持打开状态,那么如果同时有数千个客户端连接到服务并保持连接打开,会发生什么情况?该服务有一个限制,它一次可以处理“n”个连接,因此该服务无法处理来自客户端的任何新请求,这就是为什么关闭连接非常重要。
我想你知道using http://www.infoq.com/news/2009/03/WCF-DisposeWCF 服务出现问题。在我的应用程序中,我使用扩展方法关闭 WCF 连接,如此处所述thread https://stackoverflow.com/questions/13000736/is-it-correct-to-implement-idisposable-on-singleton/13013904#13013904.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)