Вопрос

Мне нужно использовать Server.MapPath() чтобы объединить пути к некоторым файлам, которые я храню в web.config.

Однако, поскольку Server.MapPath() полагается на текущий HttpContext (я думаю), я не могу этого сделать.При попытке использовать метод, даже если он "доступен", я получаю следующее исключение:

Работа сервера в данном контексте недоступна.

Существует ли другой метод, который может сопоставить веб-корневой относительный каталог, такой как ~/App_Data/ к полному физическому пути, такому как C:\inetpub\wwwroot\project\App_data\ ?

Это было полезно?

Решение

Ты мог бы попробовать System.Web.Hosting.Среда хостинга.MapPath().

HttpContext не требуется.

Другие советы

Использование AppDomain.CurrentDomain.BaseDirectory потому что Context может вернуть значение null !!

Когда вы находитесь в Global.asax, используйте контекст объект:

контекст.Сервер.mappath()

Контекст позволяет вам также получить доступ к коллекции сеансов, объекту запроса, объекту ответа.Очень полезно, когда вы хотите регистрировать ошибки, например

Вы могли бы попробовать HttpContext.Current.Server.MapPath("/") - именно так я ссылался на него раньше в классах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top