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