Сколько одновременных исходящих вызовов HttpWebRequest можно сделать в ASP.NET/IIS7?

Я пишу веб-приложение ASP.NET, которое будет работать на Windows Server 2008 (IIS7).

Компонент программной части каждой страницы должен будет сделать хотя бы один синхронный вызов веб-службы на внешний сервер с помощью HttpWebRequest и GET.

Мой вопрос: есть ли ограничение на количество исходящих вызовов HttpWebRequest, которые я могу сделать? (предположим, что сервер, на который я звоню, не имеет ограничений)

Есть ли способ объединить эти соединения, чтобы улучшить масштабирование приложения? Поможет ли конфигурация веб-сада?


person frankadelic    schedule 24.09.2009    source источник


Ответы (3)


По умолчанию сервер HTTP/1.1 ограничен двумя подключениями, а сервер HTTP/1.0 — четырьмя подключениями. Таким образом, ваше приложение ASP.NET будет иметь серьезные проблемы с пропускной способностью, если вы пытаетесь отправить более двух необработанных запросов к серверу HTTP/1.1, например.

Вам нужно будет увеличить лимит подключений либо для каждого сервера, либо глобально.

Например, глобально:

ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections

Надеюсь это поможет.

person feroze    schedule 27.09.2009
comment
Это было действительно полезно. Думаю, я бы добавил, что для установки этого через web.config вы можете добавить адреса в system.net/connectionManagement. - person Jacob; 20.01.2011

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

Я бы сказал, что вы напрашиваетесь на неприятности, если каждая страница зависит от синхронного внешнего вызова. Что, если вы получите N запросов, которые зависнут на внешних веб-сервисах? Тогда у вас будут некоторые проблемы с вашей стороны, и вы ничего не сможете с этим поделать.

Рассматривали ли вы асинхронные вызовы с обратными вызовами?

РЕДАКТИРОВАТЬ: Асинхронные страницы в ASP.NET 2.0

person rick schott    schedule 25.09.2009
comment
Будут ли асинхронные вызовы работать при вызове из кода программной части страницы ASPX? - person frankadelic; 25.09.2009
comment
Это загруженный вопрос, но я добавил ссылку с примером, который должен вас заинтересовать. - person rick schott; 25.09.2009

Следующая ссылка указывает на действительно отличную статью по оптимизации Asp.net.

http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

Надеюсь, поможет ;)

person Hemanshu Bhojak    schedule 07.12.2009