ASP.NET - 解析加载的HttpHandler路径

时间:2009-08-29 01:56:53

标签: asp.net configuration web-config httphandler

在ASP.NET中,有没有办法以编程方式解析加载的HttpHandler的路径,因为它是在Web.config中定义的? (即SomeModule.axd)?

3 个答案:

答案 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;

如果您碰巧知道在哪里可以找到其他处理程序实例的集合,您也可以使用相同的方法来获取其路径。