2009-03-12 15 views
7

Bir ASP.NET uygulamasından bir dizini siliyorum. Silme işlemi iyi gidiyor, ancak ondan döndüğümde tüm oturum verilerim silinmeden önce kayboluyor.
Kullandığım farketmez:Dizini ASP.NET uygulamasından silme yeni oturuma dön

   if (Directory.Exists(folderPath)) 
        Directory.Delete(folderPath, true); 

Veya: benim oturum verileri kaybetmek Her iki durumda da

   System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(folderPath); 
       if (d.Exists) 
        d.Delete(true); 

.

Bu sorunla karşılaşan var mı?

cevap

10

Uygulamanızın içinde bir alt dizini siliyorsanız, uygulama etki alanınız yeniden başlatılır. Bu, tüm oturum verilerini kaldırır. Bu sorunu hafifletmek için, yalnızca uygulama giriş dizininizin dışındaki dizinleri ekleyin/kaldırın.

3

Dizin aynı uygulama içinde mi? Sonra silme, bir AppDomain yeniden başlatılmasına neden olur, bu da oturum durumunun kaybolmasına neden olur.

+0

Dizin uygulamada sanal bir dizindedir. AppDomain yeniden başlatmanın etrafında bir yolu var mı? –

+1

Hayır, bildiğim kadarıyla değil. Web sitesindeki dizinler depolama için kullanılmamalıdır. –

1

Evet! IIS'nin sunulduğu bir dizinin silinmesi, sıfırlamaya (veya bir şeye) neden olur. Bu sorunu yaşadım, uygulamayı dizinleri silmemek için yeniden tasarladım.

Soru için -1 üzerinde utanç, bu gerçek bir sorundur. Düzeltmesi olan biri için +1.

İlgili konular