5

在 WCF 中,绑定设置 maxConnections 和 ServiceBehaviors serviceThrottling 设置(maxConcurrentCalls、maxConcurrentInstances、maxConcurrentSessions)有什么区别?

我正在尝试设置我的 WCF 服务,但我不确定它们如何相互协作以限制连接。

4

1 回答 1

3

有两件事需要考虑:

  1. serviceThrottling行为是一种服务/服务器端设置,用于确定服务器支持多少并发调用、实例和会话。这独立于任何绑定或服务端点——它是一个服务范围的设置。这允许您调整特定服务可以处理多少并发请求(和/或会话)——这取决于服务器“功率”、RAM、CPU 和更多因素等因素。默认情况下,这些值保持相当低,以避免服务器“过载”,从而因大量请求(错误或恶意)而导致无响应

  2. 绑定上的maxConnections设置特定于netTcpBinding(并且它是“表兄弟”,例如netNamedPipe和各种面向 Azure 的net***Relay绑定),并且与连接池有关。就像 ADO.NET 数据库连接被池化一样,到服务器的 TCP/IP 连接可以被池化和重用,以减少必须销毁和重新创建它们的开销。这主要是客户端设置(尽管它也对服务器端产生影响),并且再次:它特定于netTcpBinding(和表亲;都基于 TCP/IP)并且对于任何其他绑定都不存在.

    请参阅:有关 MaxConnections的更多详细信息,以深入了解此设置的来龙去脉。

于 2012-04-19T21:05:46.880 回答