Свойство 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 объект запроса доступен в global.asax.cs
, но IIS7 жалуется, что он «недоступен в текущем контексте». Поэтому вторая строка кода выше работает, но не в IIS7.
Проблема в том, что мне нужно получить доступ к имени виртуальной директории в global.asax.cs
. Мне нужно, чтобы построить несколько путей, которые используются в динамически создаваемых CSS. Есть ли альтернативный способ доступа к этому значению?
Редактировать: Это ошибка, которую вы получаете в IIS 7 для вызова HttpContext.Current.Request
в global.asax.cs в Application_Start:
HttpException (0x80004005): Request is not available in this context]
System.Web.HttpContext.get_Request() +8789264