Как вы определяете физический путь файл без HttpContext?

У меня есть некоторые процессы, которые выполняются без HttpContext в веб-приложении ASP.NET MVC. Этот процесс должен иметь возможность определять физический путь к каталогу содержимого приложения для чтения / записи данных. Но, поскольку он не имеет HttpContext, я не могу использовать такие причудливые вещи, как Server.MapPath и тому подобное. Предложения?

12
задан Matt 23 August 2010 в 16:38
поделиться

2 ответа

На веб-сайте лучше всего использовать HttpRuntime.AppDomainAppPath , потому что в определенные моменты пути выполнения (например, при запуске сайта) нет HttpContext.Current доступный.

См. Также этот пост .

14
ответ дан 2 December 2019 в 19:29
поделиться

Лучший способ сделать это - использовать свойство AppDomain.BaseDirectory . Пока вы не возитесь с пользовательскими доменами приложений, он будет указывать на ваш корневой каталог приложения. Другими словами; эти две строки будут одинаковыми:

string mapUsingAppDomain = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
string mapUsingServer = HttpContext.Current.Server.MapPath("~/Contents");
4
ответ дан 2 December 2019 в 19:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: