Próbowałem aplikacji ASP.NET5 MVC6. W poprzedniej wersji był katalog App_Data. Użyłem tego folderu do przechowywania dzienników błędów. Ale nie znaleziono go w najnowszej wersji. Jakaś pomoc?Katalog App_Data w ASP.NET5 MVC6
Odpowiedz
myślę oddanie App_Data pod wwwroot jest złym pomysłem. W asp.net 5 kiedy publikujemy/wdrażamy otrzymujemy 2 foldery approot i wwwroot. Wszystkie pliki, które nie będą obsługiwane przez żądania http, nie powinny znajdować się pod wwwroot. Byłoby lepiej dla rzeczy, które wcześniej byłyby pod folderem App_Data, aby żyć gdzieś w ramach podejścia. Ten related question of how to access files from approot should be of help
Katalog App_Data
nadal może być używany w ASP.NET 5, po prostu nie jest tworzony domyślnie. Wygeneruj pod wwwroot
. Jest to ścieżka zwrócony przez AppDomain.CurrentDomain.GetData("DataDirectory").ToString()
Jeśli chcesz użyć innego DataDirectory następnie należy zadzwonić SetData
:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
string baseDir = appEnv.ApplicationBasePath;
AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(baseDir, "myAppData"));
Działa to dla ASP.NET MVC z rdzeniem 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"));
}
// Umieść ten kod, gdzie jest to potrzebne, aby dostać folder App_Data
string dataDir = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
pamiętać, że 'AppDomain .CurrentDomain.GetData ("DataDirectory") 'nadal będzie zwracać' wwwroot \ App_Data', chyba że go zmienisz – jltrem