繁体   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