2009-02-22 4 views
7

Я пытаюсь найти способ программно проверить, загружен ли какой-либо конкретный HttpModule (в качестве компонента, который я пишу, для корректной работы модуля). Я пытаюсь:Обнаружение, если загружен HttpModule

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

Но это работает только для секции IIS5.1 <httpModules>, а не новой <system.webServer> секции.

Любая идея, если есть лучший способ сделать это, кроме как просто проверить оба раздела?

ответ

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

Блестящий, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^