我有一个内部网站,它调用多次调用WCF服务,该服务托管在IIS 7 Windows 2008 R2服务器中。
在50-75个用户使用它的繁重加载期间,它会在WCF调用中返回FaultException。我非常怀疑这是因为用户加载,因为我们使用相同的网站将近一年,我们之前没有得到相同的错误。某些调用可能需要2或3秒才能执行。
因此,我在主机服务的web.config文件中添加了以下行。我需要在任何地方添加任何东西吗?我是否还需要在客户端网站上做任何事情?感谢。
<serviceBehaviors>
<behavior>
<serviceThrottling
maxConcurrentCalls="100"
maxConcurrentSessions="100"
maxConcurrentInstances="100"
/>
</behavior>
</serviceBehaviors>
答案 0 :(得分:0)
在以任意方式更改配置之前,我会查找原因失败的原因。
由于您的调用需要2 / 3s才能返回,因此我们可以安全地假设您在给定时间创建了超过10个实例(默认值为10)。当发生这种情况时,呼叫会排队,如果您的负载没有下降,那么每次呼叫都可以回复,那么您将遇到问题。
您可以通过查看performance counters that WCF provides来进行诊断,特别是在与ServiceModelService 4.0.0.0相关的实例计数器上。
如果这是问题(看起来可能是这样),那么您可以采取措施并增加实例数量。但是,最终修复应该是减少响应时间,否则你只会推迟缩放带来的问题。