我有一個global.asax
,我想在Application_Start
方法來檢查是否有一定名稱的IHttpHandler
註冊。我怎樣才能做到這一點?如何檢查IHttpHandler是否被加載?
處理程序可以在自己的應用程序web.config文件或其他虛擬父目錄或machine.config中的一個聲明。
我有一個global.asax
,我想在Application_Start
方法來檢查是否有一定名稱的IHttpHandler
註冊。我怎樣才能做到這一點?如何檢查IHttpHandler是否被加載?
處理程序可以在自己的應用程序web.config文件或其他虛擬父目錄或machine.config中的一個聲明。
我不知道一個公開的方法來做你所要求的。我想你想要的代碼是HttpContext.Current.ApplicationInstance.GetHandlerMapping(),.MapHttpHandler()或.MapIntegratedHttpHandler(),但它們是私有的或內部的方法。但是,您應該可以使用反射來調用它們。
另一種方法是嘗試錯誤類型測試(嘗試請求應該路由到預期處理程序的目標,並查看在幾個地方發生了什麼,例如HttpModule中的MapRequestHandler事件 - 但我認爲Application_Start爲時尚早
使用WebConfigurationManager.OpenWebConfiguration方法閱讀web.config
文件。由於ASP.NET Configuration File Hierarchy and Inheritance所以你需要讀取本地的web.config是提供給您的web應用程序所有這一切都在machine.config中添加這些配置部分。
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/web.config");
HttpHandlersSection section = (HttpHandlersSection)config.GetSection("system.web/httpHandlers");
GridView1.DataSource = section.Handlers;
GridView1.DataBind();
處理程序可以在應用程序自己的web.config或其他虛擬父目錄或machine.config中聲明 –
是的,這是飛行的唯一方法jep,只是發出一個請求的東西。 –