Почему сеанс asp.net истек раньше, чем истекло его время ожидания?
У меня есть веб-сервис Asp.net. У него есть метод M1. M1 создает папку для каждого сеанса. Когда сеанс истекает, я удаляю эту папку в global.asax, используя следующий код.
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);
}
}
Когда я открываю свой веб-сервис в браузере и вызываю M1, он работает правильно, и папка удаляется по истечении установленного времени истечения времени ожидания. Но когда я отправляю "Invoke" кнопка веб-сервиса во второй раз (после тайм-аута сеанса и удаления папки), его сеансstarts (создать папку) иends (удаляет папку)immediately before timeout that I have set.
Why this happens?
Если я открываю новое окно (новый сеанс) для каждого вызова метода все в порядке. Но у меня возникает проблема, когда я нажимаю кнопку "Вызвать" Кнопка во второй раз. Это что-то вроде проблемы кеширования для тех же сессий.