在WCF中,绑定设置maxConnections和ServiceBehaviors serviceThrottling设置(maxConcurrentCalls,maxConcurrentInstances,maxConcurrentSessions)之间的区别是什么?
我正在尝试设置我的WCF服务,但我不确定这些服务是如何相互配合来限制连接的.
有两件事需要考虑:
该serviceThrottling行为是服务/服务器端设置,用于确定服务器支持多少并发调用、实例和会话。这独立于任何绑定或服务端点 - 它是服务范围的设置。这允许您调整特定服务可以处理的并发请求(和/或会话)数量 - 这取决于服务器“功率”、RAM、CPU 和更多因素。默认情况下,这些值保持相当低的水平,以避免服务器“过载”并因此因大量请求(错误或恶意)而变得无响应
绑定上的设置maxConnections特定于netTcpBinding(并且它是“表兄弟”,如netNamedPipe和各种面向 Azure 的net***Relay绑定),并且与连接池有关。就像 ADO.NET 数据库连接被池化一样,到服务器的 TCP/IP 连接也可以被池化和重用,以减少销毁和重新创建它们的开销。这主要是一个客户端设置(尽管它也对服务器端有影响),并且再次强调:它特定于(netTcpBinding以及近亲;全部基于 TCP/IP)并且对于任何其他绑定都不存在。
请参阅:有关MaxConnections 的更多详细信息,以深入了解此设置的来龙去脉。
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |