【发布时间】:2010-11-23 22:13:48
【问题描述】:
在 ASP.NET 中,有没有办法以编程方式解析加载的 HttpHandler 的路径,因为它在 Web.config 中定义? (即 SomeModule.axd)?
【问题讨论】:
标签: asp.net configuration web-config httphandler
在 ASP.NET 中,有没有办法以编程方式解析加载的 HttpHandler 的路径,因为它在 Web.config 中定义? (即 SomeModule.axd)?
【问题讨论】:
标签: asp.net configuration web-config httphandler
如果您对处理当前请求的处理程序的路径感兴趣:
string path = HttpContext.Current.Handler.GetType().Assembly.CodeBase;
如果您碰巧知道在哪里可以找到其他处理程序实例的集合,您也可以使用相同的方法来获取它们的路径。
【讨论】:
如果我正确理解了这个问题,你想从 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 中的处理程序没有可用作键的友好“名称”。它们只有类型(可能是丑陋的字符串)、路径和动词。要找到您感兴趣的特定处理程序,您可能必须在处理程序的类型或路径中搜索用于标识您有兴趣查找的特定处理程序的已知子字符串。
【讨论】:
从当前的 http 上下文中使用 Request 对象的 path 属性
【讨论】: