2009-02-22 16 views
7

Ich versuche, eine Möglichkeit zu finden, programmgesteuert zu überprüfen, ob ein bestimmtes HttpModule geladen ist (als eine Komponente, die ich schreibe, erfordert das Modul, ordnungsgemäß zu funktionieren). Ich versuche:Erkennen, ob ein HttpModule geladen ist

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

Aber das funktioniert nur für den IIS5.1 <httpModules> Abschnitt und nicht den neueren <system.webServer> Abschnitt.

Irgendeine Idee, wenn es einen besseren Weg gibt, dies zu tun, als nur beide Abschnitte zu überprüfen?

Antwort

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

Brilliant, danke! –

Verwandte Themen