Jad*_*ias 1 .net iis wcf iis-7
我的WCF服务多次实例化,直到系统内存不足为止?如何在IIS 7中设置单个实例?
我的WCF服务已经设置为单个实例的属性,但IIS似乎忽略了这一点:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
Run Code Online (Sandbox Code Playgroud)
您可以将WCF服务定义为单例 - 我建议不要这样做.你会遇到很多麻烦 - 性能和扩展问题,要解决这些问题,你必须处理多线程,线程安全的编程 - 所有这些都非常混乱.
你应该做的是使用每次呼叫实例化设置,并将你的服务器限制在你认为合理的任何地方.有一种称为"serviceThrottling"的服务行为,它允许您定义诸如要允许的服务类的并发实例数,要处理的并发调用数等内容.
默认情况下,这些值设置得相当低,如果你有一个装备精良的服务器,你可以轻松地将它们调高一些.您可以在服务器的web.config中定义它,如下所示:
<behaviors>
<serviceBehaviors>
<behavior name="throttled">
<serviceThrottling
maxConcurrentCalls="16"
maxConcurrentInstances="26"
maxConcurrentSessions="10" />
</behavior>
</serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)
(以上值是默认值)
阅读这些优秀的博客文章,了解服务限制及其所有细节:
归档时间: |
|
查看次数: |
3338 次 |
最近记录: |