2009-03-26 5 views
13

У меня есть служба WCF (basicHttpBinding), размещенная в версии II7 на Vista, которая, как я полагаю, обрабатывает многие запросы одновременно. Я пытаюсь загрузить тестовый сервис, разбирая 200 потоков в тестовом приложении и вызывая службу WCF. Я запустил это тестовое приложение на том же компьютере, что и сервер, а также несколько других компьютеров, и я всегда получаю тот же результат - не более 5 работников. Является ли это узким местом WCF, HTTP или IIS?Почему WCF ограничивает одновременные подключения к 5?

ответ

11

Это функция предотвращения атак типа «отказ в обслуживании». WCF предназначен для обеспечения безопасности. Проверьте поведение службы, посмотрите в msdn для конфигурации maxConcurrentCalls и maxConcurrentSessions. Я думаю, что предел равен 10, но я могу ошибаться.

+2

Это ближайший ответ - если я изменил MaxConcurrentCalls число работников WCF активно отражает то значение, к точка. Все, что более 10, на самом деле не приводит больше моих работников. Странно, по умолчанию 16, но я не могу одновременно активировать 16 вызовов. –

+2

Предел по умолчанию 16 не 10. Btw 0x10 is 16 :) –

+0

MS говорит, что по умолчанию для сеансов 10 в .NET 3.5, 100xprocessor в 4.0+. http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentsessions(v=vs.90).aspx –

2

WCF по умолчанию защищен. Это означает, что настройки по умолчанию ограничивают то, что вы можете сделать со своей службой WCF, чтобы избежать подобных атак типа «отказ в обслуживании». Это отлично подходит для интернет-сервисов, но иногда это может укусить вас. В зависимости от того, какие привязки и поведение вы используете, это может быть настройка в любом из них.

Here - обзор этих настроек - для этого вам потребуются некоторые эксперименты, чтобы определить, что именно вас кусает.

2

Нет, это только настройки дросселирования по умолчанию в WCF. Он настроен в элементе serviceThrottling поведения в файле конфигурации службы, который имеет атрибут maxConcurrentSessions. Значение по умолчанию 5, но вы можете установить его так, как хотите.

5

Вот хорошая статья на WCF управления Instance из журнала MSDN по Юваль Лоуи: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx выпуск с июня 2006 года (в случае, если MSDN будет разделывать их ссылки снова).

В нем описываются методы и настройки для управления жизненным циклом службы (одним из них является дросселирование) и показывает, какие параметры применяются для увеличения количества параллельных соединений.

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