2010-04-17 49 views
24

¿Cómo se implementa el grupo de aplicaciones en IIS?¿Qué es Application Pool en IIS y Asp.Net?

  1. ¿Cada grupo de aplicaciones es equivalente a un dominio de aplicación .Net?
  2. ¿O es equivalente a un proceso de .Net?
  3. ¿Cómo se relaciona el grupo de aplicaciones con IIS w3wp.exe?

Respuesta

25

1. ¿Cada grupo de aplicaciones es equivalente a un dominio de aplicación .Net?

No, un grupo de aplicaciones puede tener varios AppDomains. Cada AppDomain representa una única aplicación ASP.NET en ejecución. Muchas aplicaciones ASP.NET pueden pertenecer a un único grupo de aplicaciones.

2. ¿O es equivalente a un proceso .Net?

No del todo. Vea abajo.

3. ¿Cómo se relaciona el grupo de aplicaciones con IIS w3wp.exe?

Un grupo de aplicaciones representa un número limitado de procesos de trabajo que pueden albergar un número potencialmente mayor de aplicaciones. Esto es similar a cómo un grupo de conexiones SQL comparte un número limitado de conexiones entre un número arbitrario de solicitudes.

De forma predeterminada, un grupo de aplicaciones obtiene un proceso de trabajo (w3wp.exe), y generalmente es mejor dejar esta configuración a menos que sepa lo que está haciendo. Aún así, un grupo de aplicaciones se puede configurar para usar cualquier cantidad de procesos.

El proceso de trabajo es en realidad el recurso que se está reuniendo aquí, no el dominio de la aplicación. Siempre habrá la misma cantidad de AppDomains que aplicaciones ASP.NET (a menos que uno se cierre o una aplicación crea sus propios AppDomains), pero el número de procesos de trabajo es independiente; un grupo de aplicaciones le proporciona un número específico de procesos de trabajo para manejar las solicitudes de un número específico de dominios de aplicación.

Una configuración de 1 (valor predeterminado) para el número de procesos de trabajo en un grupo de aplicaciones significa que todas las aplicaciones/dominios de aplicaciones del grupo comparten el mismo proceso de trabajo.

5

Es una simplificación excesiva decirlo de esta manera, pero la mejor manera de pensarlo es que la AppPool es un conjunto de AppDomains. Todos estos AppDomains se ejecutan dentro de un único proceso de trabajo (w3wp.exe).

+0

Gracias Andrew. ¿Podría agregar también cuándo se creó el grupo de aplicaciones? ¿Cómo ayuda poner tu aplicación web bajo un grupo? – shahkalpesh

+0

@shahkalpesh: en IIS6 + No creo que pueda tener una aplicación que no esté en un grupo de aplicaciones. También puede encontrar útil este enlace (http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx) – R0MANARMY

1

Sé que esto es una entrada antigua, pero creo que este es un buen acento:

1 del grupo de aplicaciones (IIS) = 1 Cola de solicitudes (en HTTP.SYS) + 1 o más instancias de w3wp.exe .

2

Otra cosa importante que mencionar es Application Security.

En versiones anteriores de IIS, los procesos de trabajo se ejecutaban como LocalSystem, una poderosa cuenta que tiene privilegios de administrador del sistema en el servidor.Debido a que LocalSystem tiene acceso a casi todos los recursos en el sistema operativo, esto causó implicaciones de seguridad. En IIS 6.0 (grupo de aplicaciones introducido), se puede establecer la identidad del proceso de trabajo en el nivel del grupo de aplicaciones. La identidad de un grupo de aplicaciones es la cuenta bajo la cual se ejecuta el proceso de trabajo del grupo de aplicaciones. De forma predeterminada, los grupos de aplicaciones operan bajo la cuenta NetworkService, que tiene derechos de acceso de usuario de bajo nivel.

Al ejecutar el proceso de trabajo utilizando una cuenta de privilegios muy bajos como NetworkService, se puede reducir la vulnerabilidad de seguridad. Sin embargo, utilizando el Administrador de IIS, es posible configurar el grupo de aplicaciones para funcionar como cualquiera de las siguientes cuentas predefinidas:

NetworkService 
LocalSystem 
LocalService