Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 373371
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T14:18:05+00:00 2026-05-12T14:18:05+00:00

Am I using Session_End incorrectly? In my application, I have a cache to speed

  • 0

Am I using Session_End incorrectly?

In my application, I have a cache to speed up page loads, it works quite well. Recently, someone suggested to me that I was leaking memory by never emptying it out, and to implement a method on Session_End that will clear out any cache entries associated with that session id.

Occasionally though I started seeing anomalous behaviour. When loading a page, very rarely I would see an empty page, showing an exception due the the cache for that page being empty. I put a debugger breakpoint in the cache access and the session_end methods, hoping to catch it the next time it ocurred.

The next time it happened I was quite surprised at what was actually happening. My browser was left open but idle for a long time, so I’m guessing it had a stale session cookie. It hits the server for the page, which puts a copy of the page into the cache. While the page is still loading, Session_End is called instantly, which deletes it out of the cache. If I reload the browser, Session_End keeps getting called, agressively trying to close my session that the poor browser keeps requesting.

So I suppose my real questions are:

  • Why isn’t the browser getting a new session cookie if the old one is that anathemic to IIS?
  • Is Session_End simply not designed to be used in this way?
  • Is there a better way to do what I’m trying to do?

@Sosh – my global.asax.cs:

    protected void Session_End(Object sender, EventArgs e)
    {
        //clean up object cache on session expiry
        string sessionID = this.Session.SessionID;

        foreach (string key in Global.DataGroups.Keys)
        {
            if (key.EndsWith(sessionID))
            {
                Global.DataGroups.Remove(key);
            }
        }
    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T14:18:06+00:00Added an answer on May 12, 2026 at 2:18 pm

    Yes there is a better way. Use the built-in Cache object. It seems like you are re-inventing the wheel… Cache will be much more reliable. Just set the expiration time to match the session timeout. If you have to reload the cache every 20 minutes, so what?

    In general, I’ve found that Session_End is a bit akin to Application_End in that you can never quite be sure when it’s going to be called and it’s sometimes counter-intuitive.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 295k
  • Answers 295k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer You can try creating a form on the index page… May 13, 2026 at 6:56 pm
  • Editorial Team
    Editorial Team added an answer On every machine you have to basically run following pywin32_postinstall.py… May 13, 2026 at 6:56 pm
  • Editorial Team
    Editorial Team added an answer That's very little to go by. However, the exception code… May 13, 2026 at 6:56 pm

Related Questions

UPDATE: This is a known bug - link requires a login to Mathworks to
I am using jQuery.autocomplete(1.02) on my search box and I want exact string and
I am a newbie and developing a website using ASP .Net 2.0 with C#
In my ASP.NET application using InProc sessions, Session_End calls a static method in another

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.