Подтвердить что ты не робот

Каталог App_Data в ASP.NET5 MVC6

Я пытаюсь использовать приложение ASP.NET5 MVC6. В предыдущей версии был каталог App_Data​​strong > . Я использовал эту папку для хранения журналов ошибок. Но он не найден в последней версии. Любая помощь?

4b9b3361

Ответ 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_Data​​p >

    string dataDir = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();