2011-11-10 11 views
9

¿Es seguro suponer que cuando un usuario solicita una página .aspx a través de HTTP, ASP.NET crea al menos 1 hilo para ello?¿Una solicitud HTTP de ASP.NET se traduce a 1 subproceso?

Si es así, ¿cuánto tiempo dura?

Si 1000 personas hacen la solicitud de HTTP a la misma página .aspx, ¿hay algún reciclado de subprocesos involucrados, por lo que no engendra 1000 hilos diferentes?

+1

No es seguro asumir nada que no haya sido prometido por Microsoft. –

+3

Por lo que entiendo, cada solicitud recibe un único hilo a menos que inicie sus propios hilos. Para que el servidor no se vea abrumado por los cambios de contexto entre miles de subprocesos, generalmente hay una cantidad restringida de subprocesos a los que se hace referencia como grupo de subprocesos. Si el número de solicitudes es mayor que el número de subprocesos en el grupo de subprocesos, las demás solicitudes se pondrán en cola hasta que se libere un subproceso. El hilo "dura" o más bien sirve la solicitud mientras la solicitud deba ser procesada. A veces se establece un tiempo de espera para solicitudes que pueden llevar demasiado tiempo. –

Respuesta

10

A cada solicitud se le asigna un hilo desde el grupo de páginas iis. la idea es que este debe ser un proceso breve para que el hilo pueda devolverse al grupo de páginas para que lo use otra solicitud (los tamaños de los grupos de páginas no son grandes, por lo general, como 50). Por lo tanto, si tiene una solicitud de larga ejecución, es importante que realice una llamada asíncrona para liberar el hilo para alguna otra solicitud. luego, en la finalización de las solicitudes de larga ejecución, obtendrá otro hilo del grupo y finalizará.

En pocas palabras, si 1000 personas hacen solicitudes al mismo tiempo y ninguna de ellas finaliza, se ejecutarán aproximadamente 50 y las otras 950 esperarán.

+1

Más detalles se pueden encontrar aquí, http://support.microsoft.com/kb/821268. Microsoft usa subprocesos de grupo de trabajo/subproceso de trabajo en lugar de los términos que utiliza. –

+0

Gracias chicos. Pero, ¿dónde está establecido el tamaño del grupo de páginas, como dices, a alrededor de 50? No lo veo en las propiedades de AppPool de IIS. – SaltProgrammer

Cuestiones relacionadas