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