App_Data 目录在 ASP.NET5 MVC6

App_Data directory in ASP.NET5 MVC6

我一直在尝试 ASP.NET5 MVC6 应用程序。在之前的版本中,有一个目录App_Data。我用这个文件夹来存放错误日志。但是在最新版本中找不到。有帮助吗?

App_Data目录在ASP.NET5中仍然可以使用,只是没有默认创建。

wwwroot 下创建它。这是AppDomain.CurrentDomain.GetData("DataDirectory").ToString()

返回的路径

如果您想使用不同的数据目录,那么您应该调用 SetData:

  public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
  {
     string baseDir = appEnv.ApplicationBasePath;
     AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(baseDir, "myAppData"));

我认为将 App_Data 放在 wwwroot 下是个坏主意。 使用 asp.net 5 当我们 publish/deploy 时,我们得到 2 个文件夹 approot 和 wwwroot。 任何不会由 http 请求提供服务的文件都不应位于 wwwroot 下。 以前放在 App_Data 文件夹下的东西最好放在 approot 下。 这个

这适用于 ASP.NET MVC with 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 文件夹

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