2015-07-23 22 views
11

ASP.NET5 MVC6 uygulamasını deniyorum. Önceki sürümde, App_Data dizini vardı. Hata günlüklerini saklamak için bu klasörü kullandım. Ancak en son sürümde bulunamadı. Herhangi bir yardım?App_Data dizini

cevap

12

Ben wwwroot altında App_data koyarak kötü bir fikir olduğunu düşünüyorum: Bu farklı bir DataDirectory kullanmak istiyorsanız o zaman SetData aramalısınız AppDomain.CurrentDomain.GetData("DataDirectory").ToString()

tarafından döndürülen yoldur. Asp.net 5 ile, yayınladığımız/dağıttığımız zaman, 2 klasörün onayını ve wwwroot'u alırız. http istekleri tarafından sunulmayacak olan dosyalar wwwroot altında olmamalıdır. Daha önce yerine bir yerde yaşamak için App_Data klasörünün altına gidecek şeyler için daha iyi olurdu. Bu related question of how to access files from approot should be of help

+4

unutmayın sizin App_Data klasörü almak için gereken yere bu kodu koyun 'AppDomain .CurrentDomain.GetData ("DataDirectory") 'siz bunu değiştirmediğiniz sürece yine de' wwwroot \ App_Data' döndürecektir. – jltrem

10

App_Data dizini hala ASP.NET 5'te kullanılabilir, yalnızca varsayılan olarak oluşturulmamıştır.

wwwroot altında oluşturun.

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

Bu Core ASP.NET MVC için çalışan 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")); 
} 

// Eğer

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