我有一个WCF服务,在多次调用后停止响应......
我进行了测试,我在25次通话后发现我需要重置iis / vs i ..
在客户端,每个功能都以
开头ServiceClient vs = new ServiceClient();
并以
结束vs.Close();
所以我猜每个电话都是连接?
我需要在何处以及如何配置WCF以接受大量连接?
感谢。
p.s我正在使用.net 4.0
答案 0 :(得分:3)
您的WCF服务将具有最大并发呼叫者数量 - 25可能是默认值。
这被设置为较低的默认值 - 按设计,因此恶意调用者不能简单地关闭您的服务器。
您可以在服务器端指定一项名为ServiceThrottling
的服务行为,以便您定义更高的值 - 请参阅relevant MSDN documentation for details。
基本上,在服务器端,您需要定义此行为:
<serviceBehaviors>
<behavior name="Throttled">
<serviceThrottling
maxConcurrentCalls="100"
maxConcurrentSessions="100"
maxConcurrentInstances="100" />
</behavior>
</serviceBehaviors>
然后确保您的服务引用该行为:
<service name="YourServiceName" behaviorConfiguration="Throttled">
....
</service>