Warum ist die asp.net-Sitzung früher als das Timeout abgelaufen?

Ich habe einen Asp.net-Webservice. Es hat die Methode M1. M1 erstellt für jede Sitzung einen Ordner. Wenn eine Sitzung abgelaufen ist, lösche ich diesen Ordner in global.asax mit dem folgenden Code.

void Session_End(object sender, EventArgs e)
    {
        try
        {
            System.IO.DirectoryInfo dirMyPacksFolder = new System.IO.DirectoryInfo(Utilities.getMyPacksFolder(Session));
            //dirMyPacksFolder.Parent.CreateSubdirectory("ended_" + Session.SessionID);
            if (dirMyPacksFolder.Exists)
            {
                dirMyPacksFolder.Delete(true);
            }
        }
        catch (Exception ex)
        {
            Utilities.logException("", ex);
        }
    }

Wenn ich meinen Webservice im Browser öffne und M1 aufrufe, funktioniert er ordnungsgemäß und der Ordner wird nach Ablauf der von mir festgelegten Zeit gelöscht. Aber wenn ich die Schaltfläche "Aufrufen" des Webservices zum zweiten Mal übergebe (nachdem das Sitzungszeitlimit und der Ordner gelöscht wurden), wird die Sitzung beendetbeginnt (Ordner erstellen) undendet (löscht Ordner)unmittelbar vor dem timeout das ich eingestellt habe.

Warum passiert das?

Wenn ich für jeden Methodenaufruf ein neues Fenster (neue Sitzung) öffne, ist alles in Ordnung. Aber ich habe ein Problem, wenn ich zum zweiten Mal auf die Schaltfläche "Aufrufen" klicke. Es ist so etwas wie ein Caching-Problem für dieselben Sitzungen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage