Dlaczego sesja asp.net wygasła wcześniej niż jej limit czasu?

Mam usługę internetową Asp.net. Posiada metodę M1. M1 tworzy folder dla każdej sesji. Kiedy sesja wygasa, usuwam ten folder w global.asax, używając następującego kodu.

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);
        }
    }

Kiedy otwieram usługę internetową w przeglądarce i wywołuję M1, działa ona poprawnie i folder jest usuwany po ustawionym czasie wygasania. Ale kiedy przesyłam przycisk „Wywołaj” usługi internetowej po raz drugi (po przekroczeniu limitu czasu sesji i usunięciu folderu), jego sesjazaczyna się (utwórz folder) ikończy się (usuwa folder)bezpośrednio przed upływem limitu czasu, który ustawiłem.

Dlaczego tak się dzieje?

Jeśli otworzę nowe okno (nowa sesja) dla każdego wywołania metody, wszystko jest w porządku. Ale mam problem, gdy klikam przycisk „Wywołaj” po raz drugi. To jest coś jak problem z buforowaniem dla tych samych sesji.

questionAnswers(3)

yourAnswerToTheQuestion