Ответ 1
Вы можете попробовать System.Web.Hosting.HostingEnvironment.MapPath().
Не требуется HttpContext.
Мне нужно использовать Server.MapPath()
, чтобы объединить несколько путей файлов, которые хранятся в web.config
.
Однако, поскольку Server.MapPath()
полагается на текущий HttpContext (я думаю), я не могу этого сделать. При попытке использовать этот метод, даже если его "доступно", я получаю следующее исключение:
В этом контексте операция сервера недоступна.
Есть ли другой способ, который может сопоставить корневой относительный каталог веб-сайтов, такой как ~/App_Data/
, на полный физический путь, например C:\inetpub\wwwroot\project\App_data\
?
Вы можете попробовать System.Web.Hosting.HostingEnvironment.MapPath().
Не требуется HttpContext.
Используйте AppDomain.CurrentDomain.BaseDirectory
, потому что Context
может возвращать null!
Когда в Global.asax используется объект контекст:
context.Server.mappath()
Контекст позволяет получить доступ также к коллекции сеанса, к объекту запроса, к объекту ответа. Очень полезно, когда вы хотите регистрировать ошибки, например
Вы можете попробовать HttpContext.Current.Server.MapPath( "/" ) - то, как я ссылался на него раньше в классах.