8

特定の 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>セクションでは機能しません。

両方のセクションをチェックする以外に、これを行うためのより良い方法があるかどうか考えてみませんか?

4

1 に答える 1

14
HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules;
foreach (string moduleKey in modules.Keys)
{
    IHttpModule module = modules[moduleKey];
    // Do your check here
}
于 2009-02-22T19:57:06.323 に答える