このプロパティ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は「現在のコンテキストでは使用できない」と文句を言います。したがって、上記のコードの2行目は機能しますが、IIS7では機能しません。
問題は、内の仮想directroy名にアクセスする必要があることですglobal.asax.cs
。動的に作成されたCSSで使用されるいくつかのパスを構築するために必要です。この値にアクセスする別の方法はありますか?
編集:これは、HttpContext.Current.Request
Application_Startの下でglobal.asax.csを呼び出すためにIIS7で発生するエラーです。
HttpException (0x80004005): Request is not available in this context]
System.Web.HttpContext.get_Request() +8789264