在ASP.NET中,有没有办法以编程方式解析加载的HttpHandler的路径,因为它是在Web.config中定义的? (即SomeModule.axd)?
答案 0 :(得分:4)
如果我正确理解了这个问题,你想从web.config中获取路径吗?
如果是这样,你可能正在寻找的是这样的:
string p = null;
System.Web.Configuration.HttpHandlersSection httpHandlersSection =
(System.Web.Configuration.HttpHandlersSection)
System.Configuration.ConfigurationManager.GetSection("system.web/httpHandlers");
foreach (System.Web.Configuration.HttpHandlerAction handler in httpHandlersSection.Handlers)
{
if(handler.Type == "myType")
{
p = handler.Path;
break;
}
}
这里的诀窍是if语句。 web.config中的处理程序没有可用作键的友好“名称”。它们只有类型(可能是丑陋的字符串),路径和动词。要找到您感兴趣的特定处理程序,您可能必须在处理程序的类型或路径中搜索已知的子字符串,以识别您有兴趣查找的特定处理程序。
答案 1 :(得分:0)
从当前的http上下文中使用Request对象的path属性
答案 2 :(得分:0)
如果您对处理当前请求的处理程序的路径感兴趣:
string path = HttpContext.Current.Handler.GetType().Assembly.CodeBase;
如果您碰巧知道在哪里可以找到其他处理程序实例的集合,您也可以使用相同的方法来获取其路径。