Каталог App_Data в ASP.NET5 MVC6
Я пытаюсь использовать приложение ASP.NET5 MVC6. В предыдущей версии был каталог App_Datastrong > . Я использовал эту папку для хранения журналов ошибок. Но он не найден в последней версии. Любая помощь?
Ответы
Ответ 1
Я думаю, что приложение App_Data под wwwroot - плохая идея.
С помощью asp.net 5, когда мы публикуем/развертываем, мы получаем 2 папок approot и wwwroot.
Любые файлы, которые не будут обслуживаться HTTP-запросами, не должны жить под wwwroot.
Было бы лучше для вещей, которые раньше попадали бы под папку App_Data, чтобы жить где-то под подходящим вариантом.
Этот связанный вопрос о том, как обращаться к файлам из подгонки, должен помочь
Ответ 2
Каталог App_Data
все еще может использоваться в ASP.NET 5, он просто не создается по умолчанию.
Создайте его под wwwroot
. Это путь, возвращаемый AppDomain.CurrentDomain.GetData("DataDirectory").ToString()
Если вы хотите использовать другой DataDirectory, вы должны вызвать SetData
:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
string baseDir = appEnv.ApplicationBasePath;
AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(baseDir, "myAppData"));
Ответ 3
Это работает для ASP.NET MVC с Core 2
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Use this code if you want the App_Data folder to be in wwwroot
//string baseDir = env.WebRootPath;
// Use this if you want App_Data off your project root folder
string baseDir = env.ContentRootPath;
AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(baseDir, "App_Data"));
}
//Поместите этот код, где он вам нужен, чтобы получить папку App_Datap >
string dataDir = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();