具有多个服务合同的WCF节流

问题描述

| 我有一个WCF服务,使用netTcpBinding定义了14-15个服务合同,没有安全或可靠的会话。 我已将节流作为一种行为启用,并且尚未定义InstanceContextMode,因此我可以假定它是PerSession实例化。 (我读过,即使我将其更改为PerCall,由于netTcpBinding是\“ sessionful \”,它也会忽略它,有人可以确认吗?)
      <serviceThrottling
               maxConcurrentCalls=\"100\"
               maxConcurrentSessions=\"300\"
             />
我的问题确实是,在这种情况下,每种服务的设置应该是什么? 在服务器上1个正在运行的服务中定义的这么多合同对性能和死锁有影响吗? 谢谢 d     

解决方法

ServiceThrottling是服务的一种行为,适用于服务。 这样,您可以定义不同的此类行为并将不同的限制应用于您的服务-也许可以防止DOS攻击。 节流的一般方法是“如果没有破裂,请不要修复。”在大多数情况下,您不需要节流。仅当您拥有共享资源(您的网站和服务在同一台服务器上运行)并且不希望您的服务使网站窒息时,限制才有用。 节流不会导致死锁或对死锁有所帮助。