2009-03-12 8 views
7

Ich lösche ein Verzeichnis aus einer ASP.NET-Anwendung. Die Löschung geht gut, aber wenn ich von ihr zurückkomme, sind alle meine Sitzungsdaten vor dem Löschen verloren.
Es ist egal, ob ich benutze:Delete Directory von ASP.NET-Anwendung kehrt zu neuer Sitzung zurück

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

Oder:

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

In beiden Fällen ich meine Session-Daten verlieren.

Hat jemand auf dieses Problem gestoßen?

Antwort

10

Wenn Sie ein Unterverzeichnis in Ihrer Anwendung löschen, wird Ihre App-Domäne neu gestartet. Dies entfernt alle Sitzungsdaten. Um dieses Problem zu beheben, fügen Sie nur Verzeichnisse außerhalb des Home-Verzeichnisses Ihrer Anwendung hinzu.

3

Ist das Verzeichnis in der gleichen Anwendung? Durch das Löschen wird ein AppDomain-Neustart durchgeführt, wodurch der Sitzungsstatus verloren geht.

+0

Das Verzeichnis befindet sich in einem virtuellen Verzeichnis in der Anwendung. Gibt es eine Möglichkeit, den Neustart von AppDomain zu umgehen? –

+1

Nein, ich kenne das nicht. Verzeichnisse innerhalb der Website sollten nicht zum Speichern verwendet werden. –

1

Ja! Löschen eines Verzeichnisses, das von IIS bereitgestellt wird, verursacht einen Reset (oder etwas). Ich hatte dieses Problem, ich habe die App neu entworfen, um Verzeichnisse nicht zu löschen.

Schande über die -1 für die Frage, das ist ein echtes Problem. +1 für jemanden mit einer Reparatur.

Verwandte Themen