2009-02-22 78 views
7

我試圖找到一種方法,如果一個特定的HTTP模塊被加載到編程方式檢查(因爲我正在寫一個組件需要的模塊正常工作)。我想:檢測有HTTP模塊被加載

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>部分。

是否有更好的辦法不僅僅是檢查這兩部分做其他任何想法?

回答

12
HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules; 
foreach (string moduleKey in modules.Keys) 
{ 
    IHttpModule module = modules[moduleKey]; 
    // Do your check here 
} 
+0

輝煌,謝謝! – 2009-02-22 20:05:27