【发布时间】:2009-04-28 20:42:13
【问题描述】:
HttpContext.Current.Request.ApplicationPath 属性表示 IIS 或 WebDev.WebServer 中的虚拟目录。
HttpContext.Current.Request.ApplicationPath evaluates to "/virtualdirectory"
这可以与VirtualPathUtility 结合使用以使路径根相对:
VirtualPathUtility.ToAbsolute("~/images/cat.jpg",
HttpContext.Current.Request.ApplicationPath)
// (this evaluates to "/virtualdirectory/images/cat.jpg")
在 IIS6 和 WebDev.WebServer 中,Request 对象 在 global.asax.cs 中可用,但 IIS7 抱怨它“在当前上下文中不可用”。因此,上面的第二行代码在 IIS7 中有效,但在 IIS7 中无效。
问题是我需要访问global.asax.cs 中的虚拟目录名称。我需要它来构造一些在动态创建的 CSS 中使用的路径。是否有其他方法可以访问此值?
编辑:这是您在 IIS 7 中调用 Application_Start 下 global.asax.cs 中的 HttpContext.Current.Request 时遇到的错误:
HttpException (0x80004005): Request is not available in this context]
System.Web.HttpContext.get_Request() +8789264
【问题讨论】:
-
我没看懂问题, HttpContext.Current 在 global.asax 中可用,你问什么事件?
-
@deviant - HttpContext.Current 可用,但 HttpContext.Current.Request 不可用。我已经编辑了帖子以包含错误