0

我有一个内部网站,它多次调用托管在 IIS 7 Windows 2008 R2 服务器中的 WCF 服务。

在 50-75 个用户使用它的重负载期间,它在 WCF 调用中返回 FaultException。我非常怀疑这是因为用户加载,因为我们使用同一个网站将近一年,而且我们之前没有遇到同样的错误。某些调用可能需要 2 或 3 秒才能执行。

因此,我在主机服务的 web.config 文件中添加了以下几行。我需要在任何地方添加任何东西吗?我也需要在客户网站上做任何事情吗?谢谢。

<serviceBehaviors>
<behavior>
    <serviceThrottling 
    maxConcurrentCalls="100" 
    maxConcurrentSessions="100" 
    maxConcurrentInstances="100"
      />

</behavior>
</serviceBehaviors>
4

1 回答 1

0

在任意更改配置之前,我会寻找它失败的原因。

由于您的调用需要 2/3 秒才能返回,我们可以放心地假设您在给定时间创建了超过 10 个实例(默认为 10 个)。发生这种情况时,呼叫会排队,并且如果您的负载没有下降,那么每个呼叫都可以得到答复,那么您将遇到问题。

您可以通过查看WCF 提供的性能计数器进行诊断,特别是与 ServiceModelService 4.0.0.0 相关的实例计数器。

如果这是问题(看起来可能是),那么您可以采取行动并增加实例数量。但是,最终的解决方法应该是减少响应时间,否则您只会推迟扩展带来的问题。

于 2013-02-27T12:46:34.550 回答