2012-06-15 17 views
121

quería saber cuál es el significado de<módulos runAllManagedModulesForAllRequests = "true" /> Significado

<modules runAllManagedModulesForAllRequests="true" /> 

estoy usando IIS 7.5 y tengo una sencilla aplicación web. ¿Debo escribir esto en mi archivo web.config? También he escrito algunos manejadores de http para la llamada jquery ajax. Estoy usando autenticación de formulario y asp.net 4.0.

¿Cómo puedo determinar qué módulo debo ejecutar y cuál no?

Respuesta

108

Módulos Condiciones previas:

El núcleo del motor IIS utiliza condiciones previas para determinar cuándo habilitar un módulo particular. Los motivos de rendimiento, por ejemplo, pueden determinar que solo desee ejecutar módulos administrados para solicitudes que también van a un manejador gestionado. La condición previa en el siguiente ejemplo (precondition="managedHandler") sólo permite a las formas módulo de autenticación para las peticiones que también son manejados por un controlador administrado, tales como solicitudes de .aspx o archivos .asmx:

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> 

Si quita el atributo precondition="managedHandler" La Autenticación de formularios también se aplica al contenido que no es atendido por manejadores administrados, como .html, .jpg, .doc, sino también para las extensiones ASP (.asp) o PHP (.php). Consulte "How to Take Advantage of IIS Integrated Pipeline" para ver un ejemplo de cómo habilitar módulos ASP.NET para que se ejecuten para todo el contenido.

También puede usar un acceso directo para permitir que todos los módulos administrados (ASP.NET) se ejecuten para todas las solicitudes en su aplicación, independientemente de la condición previa "managedHandler".

para que todos los módulos administrados para funcionar para todas las solicitudes sin tener que configurar cada entrada del módulo para quitar el "managedHandler" condición previa, utilice la propiedad runAllManagedModulesForAllRequests en la sección <modules>:

<modules runAllManagedModulesForAllRequests="true" />  

Cuando se utiliza esta propiedad , la condición previa "managedHandler" no tiene ningún efecto y todos los módulos administrados se ejecutan para todas las solicitudes.

Copiado de IIS Modules Overview: Preconditions

+0

es bueno para ejecutar todos los modelos para toda la solicitud o seré más específico por allí. ¿Afecta esto la velocidad de la aplicación? –

+2

Sí, habrá un problema de rendimiento. Deberías usar precondición en su lugar. –

+3

, entonces, ¿cómo debo decidir qué módulo debo usar y cuál no? –

Cuestiones relacionadas