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();
我一直在尝试 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();