在连接到同一服务 URI 的单个进程中使用服务器事件客户端的多个实例



当我在连接到同一 URI 的单个 .NET 应用程序中使用多个 ServerEventsClient 实例时,任何后续的 GET/POST 等调用都会无限期地阻塞并超时。我相信这与@mythz(使用ServiceStack.Client超时(在此回答中提到的一些DDoS保护有关。仅当服务器和客户端不在同一台PC上运行时,才会发生这种情况。

我可以通过确保只为给定的 URI 创建一个 ServerEventsClient 来解决此问题,但在我投入太多工作之前,我想确保这是设计使然,并且没有更简单的解决方法来处理这个问题。还有其他人遇到过这个问题吗?

ServiceStack 的 C# 服务器事件客户端在后台使用 .NET HttpWebRequest,该具有每个域的内置请求限制。

您应该能够通过增加 System.Net.ServicePointManager.DefaultConnectionLimit 来增加限制,例如:

ServicePointManager.DefaultConnectionLimit = 10;

或者,您应该能够通过 Web.config 中的<connectionManagement>增加此限制:

<configuration>  
  <system.net>  
    <connectionManagement>  
      <add address = "http://www.contoso.com" maxconnection = "4" />  
      <add address = "*" maxconnection = "10" />  
    </connectionManagement>  
  </system.net>  
</configuration>  

最新更新