2009-09-24 8 views
8

Estoy escribiendo una aplicación web ASP.NET que se ejecutará en Windows Server 2008 (IIS7).¿Cuántas llamadas HttpWebRequest de salida simultáneas se pueden realizar en ASP.NET/IIS7?

El código subyacente de cada página deberá realizar al menos una llamada de servicio web síncrona a un servidor externo utilizando HttpWebRequest y GET.

Mi pregunta: ¿hay algún límite en el número de llamadas HttpWebRequest salientes que puedo hacer? (supongamos que el servidor al que llamo no tiene límite)

¿Hay algún medio para agrupar estas conexiones y mejorar la escala de la aplicación? ¿Ayudaría una configuración de jardín web?

Respuesta

5

Por defecto, un HTTP/1.1 servidor está limitado a dos de conexión, y a/1,0 servidor HTTP está limitado a cuatro conexiones. Por lo tanto, su aplicación ASP.NEt tendrá graves problemas de rendimiento si está tratando de emitir más de dos solicitudes pendientes a un servidor HTTP/1.1, por ejemplo.

Usted tendrá que aumentar el límite de conexión, ya sea por servidor, o de forma global.

Por ejemplo, a nivel mundial:

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

Espero que esto ayude.

+0

Esto fue realmente útil. Pensé en agregar que para configurar esto a través de web.config, puede agregar direcciones a system.net/connectionManagement. – Jacob

1

Creo que su pregunta debe estar orientada a las configuraciones de red.

diría que está buscando problemas si cada página depende de una llamada externa sincrónica. ¿Qué sucede si obtiene N número de solicitud que se cuelga en los servicios web externos? Entonces tendrá algunos problemas y no podrá hacer nada al respecto.

¿Ha considerado las llamadas asincrónicas con devoluciones de llamada?

EDIT: Asynchronous Pages in ASP.NET 2.0

+0

Will asíncrono llamadas funcionan cuando se llama desde el código subyacente de una página ASPX? – frankadelic

+0

Esa es una pregunta cargada, pero agregué un enlace que tiene un ejemplo que debería ayudarlo. –

Cuestiones relacionadas