2013-02-27 2 views
0

У меня есть внутренний веб-сайт, который вызывает несколько вызовов службы WCF, размещенной на сервере IIS 7 Windows 2008 R2.Увеличение загрузки и одновременных пользователей в службе WCF

В период большой загрузки, когда он используется пользователями 50-75, он возвращает исключение FaultException в вызовах WCF. Я очень сомневаюсь, что это из-за загрузки пользователя, потому что мы используем один и тот же веб-сайт уже почти год, и мы не получили такую ​​же ошибку раньше. Для выполнения некоторых вызовов может потребоваться 2 или 3 секунды.

Итак, я добавил следующие строки в файле web.config в Host Service. Нужно ли мне что-нибудь добавлять? Нужно ли мне что-либо делать на клиентском веб-сайте? Благодарю.

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

</behavior> 
</serviceBehaviors> 
+0

Я думаю, что предел равен 10. – Sajeetharan

ответ

0

Прежде чем изменять конфигурацию произвольно, я бы искал причину того, почему он терпит неудачу.

Поскольку ваши вызовы принимают 2/3s для возврата, мы можем с уверенностью предположить, что вы достигли более 10 созданных экземпляров (по умолчанию 10) в данный момент времени. Когда это происходит, очереди вызовов и если ваша нагрузка не падает, поэтому каждый звонок может быть вам ответен, у вас будут проблемы.

Вы можете выполнить эту диагностику, просмотрев performance counters that WCF provides, особенно на счетчиках экземпляров, связанных с ServiceModelService 4.0.0.0.

Если это проблема (похоже, она может быть), то вы можете принять меры и увеличить количество экземпляров. Тем не менее, конечным решением должно быть сокращение времени отклика, поскольку в противном случае вы просто отложите проблемы, связанные с масштабированием.

Смежные вопросы