Назад | Перейти на главную страницу

Ограничения вызова веб-службы в IIS7?

У меня есть веб-приложение, работающее на .net 4.0 и IIS7. Когда форма отправлена, мне нужно вызвать две внешние веб-службы, дождаться ответов, что-то с ними сделать и вернуть ответ. Проблема в том, что веб-сервисам требуется около 20 секунд, чтобы ответить (это вне моего контроля). Я решил перейти к асинхронному подходу, чтобы можно было задействовать обе службы одновременно, вместо того, чтобы нажимать одну кнопку ожидания ответа и затем нажимать другую.

Теперь, если я получу 10 пользователей, отправляющих одновременно, я создам 20 исходящих запросов в 20 отдельных потоках. Я читал, что IIS может быть не очень доволен этим, поскольку установлено ограничение на 12 исходящих TCP-соединений на процессор (maxconnections в machine.config). Кто-нибудь может подтвердить это? Есть ли что-нибудь еще, о чем я должен подумать в этом конкретном сценарии, чтобы обеспечить хорошую работу IIS?

Спасибо!

вы также можете переопределить значение maxconnection в web.config.

<system.net> 
 <connectionManagement> 
  <add address="*" maxconnection="20"/> 
 </connectionManagement> 
</system.net>

Я работаю над приложением, которое также использует несколько внешних веб-сервисов в качестве источников данных. Отдельные страницы могут выполнять десятки асинхронных вызовов веб-сервисов. Таким образом, в нашем случае для maxconnection в web.config установлено значение 2000, и мы не соблюдаем ограничений на исходящие соединения.

Единственное, о чем следует предупредить, наше приложение все еще размещается в IIS6, поэтому я не совсем уверен, что это останется таким же в IIS7. Однако, поскольку конфигурация maxconnection зависит от .NET, а не от IIS, я не думаю, что это произойдет.