7

I'm deleting a directory from within an ASP.NET application. The deletion goes fine, but when I return from it all my session data from before the delete is lost.
It doesn't matter whether I use:

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

Or:

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

In both cases I lose my session data.

Has anyone run into this problem?

Mihai Limbășan
  • 64,368
  • 4
  • 48
  • 59
Lea Cohen
  • 7,990
  • 18
  • 73
  • 99

3 Answers3

10

If you are deleting a subdirectory within your application, your app domain will restart. This removes all session data. To alleviate this issue, only add/remove directories outside your application home directory.

Beep beep
  • 18,873
  • 12
  • 63
  • 78
3

Is the directory within the same application? Then deleting it will cause an AppDomain restart, which will result in loss of session state.

John Saunders
  • 160,644
  • 26
  • 247
  • 397
1

Yes! Deleting a directory IIS is serving, causes a reset (or something). I have had this problem, I redesigned the app to not delete directories.

Shame on the -1 for the question, this is a real problem. +1 for someone with a fix.

tarn
  • 2,192
  • 2
  • 13
  • 17