簡體   English   中英

如何檢查是否已加載IHttpHandler?

[英]How to check if an IHttpHandler is loaded?

我有一個global.asax ,我想檢查Application_Start方法是否注冊了具有特定名稱的IHttpHandler 我怎樣才能做到這一點?

可以在應用程序自己的web.config或其他虛擬父目錄之一或machine.config中聲明處理程序。

我不知道要執行您要的公開方法。

我認為您想要的代碼是HttpContext.Current.ApplicationInstance.GetHandlerMapping()、. MapHttpHandler()或.MapIntegratedHttpHandler(),但是它們是私有方法或內部方法。 但是,您應該能夠使用反射來調用它們。

另一種選擇是進行反復試驗的類型測試(嘗試請求應路由到預期處理程序的目標,並查看在多個位置發生的情況,例如HttpModule中的MapRequestHandler事件-但我認為Application_Start還為時過早。

使用WebConfigurationManager.OpenWebConfiguration方法讀取web.config文件。 由於ASP.NET配置文件的層次結構和繼承 ,在machine.config中添加的所有這些配置部分都可用於您的Web應用程序,因此您需要讀取本地web.config。

Configuration config = WebConfigurationManager.OpenWebConfiguration("~/web.config");
HttpHandlersSection section = (HttpHandlersSection)config.GetSection("system.web/httpHandlers");

GridView1.DataSource = section.Handlers;
GridView1.DataBind();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM