2

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

有谁知道我可以捕获的指标(例如 perfmon)来说明问题/好处。或者一个明确的参考,说明问题/好处没有人可以争论?

4

2 回答 2

1

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

  1. 创建一个简单的服务并将 and 限制maxConcurrentCallsmaxConcurrentSessions5。

  2. 创建一个客户端应用程序,并在其中调用服务方法而不关闭连接。

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

  4. 查看从客户端打开新连接时会发生什么。客户可能会等待一段时间,然后您会遇到一些异常。

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

我想你知道usingWCF 服务中的问题。在我的应用程序中,我使用此线程中所述的扩展方法关闭了 WCF 连接。

于 2012-10-22T15:12:25.957 回答
0

您是否在服务器和客户端的命令提示符下尝试过简单的“netstat -N”?Yoy 可能会看到很多等待/挂起的连接,这可能会无缘无故地耗尽您的服务器资源。

于 2012-10-20T19:28:59.347 回答