我有一个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,只是发出一个请求的东西。 –