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 回答