Обнаружение, загружен ли HttpModule - PullRequest
8 голосов
/ 22 февраля 2009

Я пытаюсь найти способ программно проверить, загружен ли определенный 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>.

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

1 Ответ

14 голосов
/ 22 февраля 2009
HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules;
foreach (string moduleKey in modules.Keys)
{
    IHttpModule module = modules[moduleKey];
    // Do your check here
}
...