Повсеместный способ получить корневой каталог файловой системы веб-приложения .NET - PullRequest
6 голосов
/ 25 марта 2010

Аналогично Повсеместный способ получения корневого каталога, в котором приложение запускается через C # , но этот вопрос, похоже, связан с Win Forms. Как сделать то же самое для веб-форм?

Я использовал ...

HttpContext.Current.Server.MapPath("~")

Это прекрасно работает для обработки HTTP-запросов, но, похоже, не работает, если такой планировщик, как Quartz.NET , вызывает задание (проблема, с которой я столкнулся). HttpContext.Current является нулевым в этом сценарии, поскольку фактический HTTP-запрос не выполнен.

Ответы [ 3 ]

5 голосов
/ 25 марта 2010

Вы ищете свойство HttpRuntime.AppDomainAppPath и, возможно, класс VirtualPathUtility.

5 голосов
/ 25 марта 2010

Попробуйте метод System.Web.Hosting.HostingEnvironment.MapPath. AFAIK, он не зависит от HttpContext, поэтому вы должны иметь возможность использовать его из фонового потока.

0 голосов
/ 06 мая 2010

Используйте AppDomain.CurrentDomain.BaseDirectory. Это соответствует AppDomainSetup.ApplicationBase, в котором говорится, что это «Имя базового каталога приложения».

http://msdn.microsoft.com/en-us/library/system.appdomain.basedirectory.aspx

http://msdn.microsoft.com/en-us/library/system.appdomainsetup.applicationbase.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...