ASP.NET5 MVC6中的App_Data目录

本文关键字:Data 目录 App 中的 NET5 MVC6 ASP | 更新日期: 2023-09-27 18:04:15

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

ASP.NET5 MVC6中的App_Data目录

这适用于带有Core 2 的ASP.NET MVC

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();

我认为将App_Data放在wwwroot下是个坏主意。使用asp.net 5,当我们发布/部署时,我们会得到2个文件夹approat和wwwroot。任何不会由http请求提供服务的文件都不应该位于wwwroot下。以前放在App_Data文件夹下的东西最好放在approt下。如何从approt访问文件的相关问题应该对有帮助

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"));
相关文章: