2009-02-22 19 views
7

Estoy tratando de encontrar una manera de verificar programáticamente si un HttpModule en particular está cargado (porque un componente que estoy escribiendo requiere que el módulo funcione correctamente). Estoy intentando:Detectando si se carga un HttpModule

bool ismodulepresent = false; 
foreach(HttpModuleAction module in ((HttpModulesSection)ConfigurationManager.GetSection("system.web/httpModules")).Modules) 
{ 
    if(module.Type == typeof(MyModule).FullName) 
    { 
     ismodulepresent = true; 
     break; 
    } 
} 

Pero eso sólo funciona para la sección IIS5.1 <httpModules> y no a la parte más nueva <system.webServer>.

¿Alguna idea de si hay una manera mejor de hacer esto aparte de simplemente comprobar ambas secciones?

Respuesta

12
HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules; 
foreach (string moduleKey in modules.Keys) 
{ 
    IHttpModule module = modules[moduleKey]; 
    // Do your check here 
} 
+0

Brilliant, thanks! –

Cuestiones relacionadas