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