我正在尝试找到一种方法来以编程方式检查是否加载了特定的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>
部分。
除了检查两个部分之外,是否有更好的方法可以做到这一点?
答案 0 :(得分:14)
HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules;
foreach (string moduleKey in modules.Keys)
{
IHttpModule module = modules[moduleKey];
// Do your check here
}