关闭WCF代理

时间:2012-10-19 12:43:38

标签: wcf

当涉及到WCF代理时,我一直遵循try / Close / catch / Abort的指导。我现在面临一个代码库,它在MVC控制器中创建代理并让它们超出范围。我在论证我们需要编辑代码库以使用try / Close / catch / Abort但是有阻力。

有没有人知道我可以捕获的指标(例如perfmon)来说明问题/好处。或者是明确的参考文献,说明问题/利益没有人可以提出异议?

2 个答案:

答案 0 :(得分:1)

您可以创建示例应用程序来模拟问题。虽然我没有尝试过你可以试试这个,

  1. 创建一项简单服务,并将maxConcurrentCallsmaxConcurrentSessions限制为5.

  2. 创建一个客户端应用程序,然后在不关闭连接的情况下调用服务方法。

  3. 启动6个或更多客户端

  4. 查看从客户端打开新连接时会发生什么。可能客户会等待一段时间而你会遇到一些例外。

  5. 如果客户端没有正确关闭连接,连接仍然会在服务中保持打开状态,那么如果1000个客户端一次连接到服务并保持连接打开会发生什么?该服务有一个限制,它可以一次服务器'n'连接,因此服务无法处理来自客户端的任何新请求,这就是关闭连接非常重要的原因。

    我认为您了解WCF服务中的using问题。在我的应用程序中,我使用扩展方法关闭WCF连接,如thread中所述。

答案 1 :(得分:0)

你试过一个简单的netstat -N'从服务器和客户端的命令提示符? Yoy可能会看到很多等待/挂起的连接,这些连接可能无缘无故地耗尽您的服务器资源。