У меня есть веб-приложение, работающее на .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, я не думаю, что это произойдет.