我可以访问global.asax.cs中的虚拟目录名吗?

Sim*_*ver 7 asp.net requestcontext

该属性HttpContext.Current.Request.ApplicationPath表示IIS或WebDev.WebServer中的虚拟目录.

 HttpContext.Current.Request.ApplicationPath evaluates to "/virtualdirectory"
Run Code Online (Sandbox Code Playgroud)

这可以与VirtualPathUtility路径根相关联使用:

 VirtualPathUtility.ToAbsolute("~/images/cat.jpg",
                               HttpContext.Current.Request.ApplicationPath)

 // (this evaluates to "/virtualdirectory/images/cat.jpg")
Run Code Online (Sandbox Code Playgroud)

在IIS6和WebDev.WebServer Request对象可用global.asax.cs的,但IIS7抱怨说,它是"在目前情况下不可用".因此上面的第二行代码可以工作,但不能在IIS7中工作.

问题是我需要访问其中的虚拟directroy名称global.asax.cs.我需要它来构建一些在动态创建的CSS中使用的路径.有没有其他方法可以访问此值?

编辑:这是您在IIS 7中调用HttpContext.Current.RequestApplication_Start下的global.asax.cs时出现的错误:

 HttpException (0x80004005): Request is not available in this context]
    System.Web.HttpContext.get_Request() +8789264
Run Code Online (Sandbox Code Playgroud)

Sim*_*ver 14

终于找到了简单的答案!

 HttpRuntime.AppDomainAppVirtualPath
Run Code Online (Sandbox Code Playgroud)

在Application_Start期间立即可用

这是/myapplication包含/前缀的形式.