Why asp.net session expires sooner than its timeout?
===

I have an Asp.net webservice. It has method M1. M1 creates a folder for each session. When a session is expired, I delete that folder in global.asax using the following 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);
            }
        }

When I open my webservice in browser and call M1, it operates correctly. But when I submit "Invoke" button of webservice for the second time (after session timeout and folder is deleted), its session starts (create folder) and ends (deletes folder) immediately before timeout.

Why this happens?
