SESSION VARIABLE VALUE NOT ALWAYS AVAILABLE IN GLOBAL.ASAX SESSION_END

Chintoo Semi

Total Post:135

Points:947
Posted by  Chintoo Semi
 2010  View(s)
Ratings:
Rate this:

When a user logs into the website, I am creating 5 session variables with some user related values (like userid,roleid etc..). Based on one of the values stored in a session variable, I have to update a record in the database. To do this I am writing the following code in the Session_End() event of Global.asax

if (Session["UserHistoryID"] != null)

        SessionUtility.UpdateDatabase(Convert.ToInt32(Session["UserHistoryID"]));

The problem here with this is when the Session times out and Session_End fires the Session variable Session["UserHistoryID"] is NULL some-time and the above condition fails and the record in the database is not updated. When this is tested in my local system it works fine but when I test this in production server some of the records are not getting updated

Some one please explain how the Session_End works exactly.


  1. Sumit Kesarwani

    Post:378

    Points:2694
    Re: Session variable value not always available in Global.asax Session_end

    I think that the earliest possible time you could obtain the Session value is under Application_AcquireRequestState as mentioned hereSessions and Global.asax so you could write something like this in your Global.asax

    void Application_AcquireRequestState(object sender, EventArgs e)

        {

            if (System.Web.HttpContext.Current.Session != null)

            {

                if (Session["language"] != null)

                {

                    Response.Write(Session["language"].ToString());

                }

            }

        }

    hopefully that would help !!

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!