我有global.asax
,如果注册了具有特定名称的Application_Start
,我想检查IHttpHandler
方法。我怎么能这样做?
可以在应用程序自己的web.config或其他虚拟父目录或machine.config中声明处理程序。
答案 0 :(得分:1)
我不知道有什么公共方法来做你想要的。
我认为你想要的代码是HttpContext.Current.ApplicationInstance.GetHandlerMapping(),. MapHttpHandler()或.MapIntegratedHttpHandler(),但它们是私有或内部方法。但是,您应该能够使用反射来调用它们。
另一种选择是试验和错误类型测试(尝试请求应该路由到预期处理程序的目标,并查看在多个位置发生的情况,例如在HttpModule中的MapRequestHandler事件中 - 但是我认为Application_Start还为时尚早。
答案 1 :(得分:0)
使用WebConfigurationManager.OpenWebConfiguration方法阅读web.config
文件。由于ASP.NET Configuration File Hierarchy and Inheritance所有这些在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();