У меня есть служба WCF (basicHttpBinding), размещенная в версии II7 на Vista, которая, как я полагаю, обрабатывает многие запросы одновременно. Я пытаюсь загрузить тестовый сервис, разбирая 200 потоков в тестовом приложении и вызывая службу WCF. Я запустил это тестовое приложение на том же компьютере, что и сервер, а также несколько других компьютеров, и я всегда получаю тот же результат - не более 5 работников. Является ли это узким местом WCF, HTTP или IIS?Почему WCF ограничивает одновременные подключения к 5?
ответ
Это функция предотвращения атак типа «отказ в обслуживании». WCF предназначен для обеспечения безопасности. Проверьте поведение службы, посмотрите в msdn для конфигурации maxConcurrentCalls и maxConcurrentSessions. Я думаю, что предел равен 10, но я могу ошибаться.
WCF по умолчанию защищен. Это означает, что настройки по умолчанию ограничивают то, что вы можете сделать со своей службой WCF, чтобы избежать подобных атак типа «отказ в обслуживании». Это отлично подходит для интернет-сервисов, но иногда это может укусить вас. В зависимости от того, какие привязки и поведение вы используете, это может быть настройка в любом из них.
Here - обзор этих настроек - для этого вам потребуются некоторые эксперименты, чтобы определить, что именно вас кусает.
Нет, это только настройки дросселирования по умолчанию в WCF. Он настроен в элементе serviceThrottling поведения в файле конфигурации службы, который имеет атрибут maxConcurrentSessions. Значение по умолчанию 5, но вы можете установить его так, как хотите.
Вот хорошая статья на WCF управления Instance из журнала MSDN по Юваль Лоуи: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx выпуск с июня 2006 года (в случае, если MSDN будет разделывать их ссылки снова).
В нем описываются методы и настройки для управления жизненным циклом службы (одним из них является дросселирование) и показывает, какие параметры применяются для увеличения количества параллельных соединений.
По состоянию на .NET 4.5, по умолчанию число подключений (100 * число процессоров) - ServiceThrottlingBehavior.MaxConcurrentSessions Property
- 1. Максимальные одновременные подключения к MySQL
- 2. Одновременные подключения
- 3. Одновременные подключения MySql/C#
- 4. WCF принимает одновременные запросы
- 5. Создание подключения к wcf
- 6. Ошибка подключения к wcf Silverlight
- 7. Проблема подключения к клиенту WCF
- 8. SQL Connection создает чрезмерные одновременные HTTP-подключения к хосту
- 9. Firebase соединение обнаруживая состояние и одновременные подключения к realtimeDB
- 10. get_companies ограничивает выходы на 5?
- 11. ограничивает сетевой интерфейс для подключения к одной цели IP
- 12. Почему WCF ограничивает нас только открытием именованной трубы на машину?
- 13. Проблема подключения к службе WCF - возможно, безопасность?
- 14. Почему C++ double ограничивает себя 5 десятичными знаками?
- 15. Как сохранить все подключения к службе WCF?
- 16. Обработка подключения к серверу/клиенту WCF
- 17. Варианты WCF для безопасного подключения к Интернету
- 18. Конфигурация одновременного подключения WCF
- 19. WCF: Как определить новые подключения к службам WCF PerSession?
- 20. Почему Amazon Redshift сериализует мои одновременные обновления?
- 21. Пут ограничивает к EditText
- 22. Проверка подключения к Интернету iOS 5
- 23. подключения к Interbase версии 5 из C#
- 24. Максимальные одновременные подключения HTTP для одного домена между двумя серверами
- 25. Google одновременные соединения
- 26. Одновременные запросы к скрипту PHP
- 27. Ошибка подключения WCF
- 28. Ограничительный механизм подключения WCF
- 29. NHibernate & WCF: производительность (повторное использование сеанса) против параллелизма (одновременные запросы)
- 30. Как отключить одновременные подключения одного пользователя в oracle
Это ближайший ответ - если я изменил MaxConcurrentCalls число работников WCF активно отражает то значение, к точка. Все, что более 10, на самом деле не приводит больше моих работников. Странно, по умолчанию 16, но я не могу одновременно активировать 16 вызовов. –
Предел по умолчанию 16 не 10. Btw 0x10 is 16 :) –
MS говорит, что по умолчанию для сеансов 10 в .NET 3.5, 100xprocessor в 4.0+. http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentsessions(v=vs.90).aspx –