State Management :: Session Time Out Exception Logged ?
May 10, 2010
I am working on a asp.net 3.5 app. In the Global.asax in the Application_Error method, I am logging everthing to ddatabase (log4Net).
I have a session limit of 20 minutes. What happens when the user hits that limit and then clicks on the Submit Button of the app. ?Will that generate any exception? and will that exception be logged into my database as I am logging all exceptions in my Application_Error method.
Many web applications use sessions to check the logged in status of the users. Is there a better approach to check the logged in status instead of using session state?
I'm looking at a pure ReSTful approach where is no session state at all. This may make more sense in an mvc application rather than an asp.net application.
I need to create a small web application. The first thing I need to do is to develop the login, logout and user session management functionality. I wanted to use a masterpage and a usercontrol for this purpose. When a user open the page and IS LOGGED IN, the usercontrol should something like this: "Hello Username! <a>Logout</a>" And if he is NOT LOGGED IN, the Usercontrol should show something like this "Login | Logout"
When he clicks on the Login Button the Login-page should be opened. How can I build a Usercontrol which does the above thing. (I have never build a usercontrol and used it in a masterpage before!) The second problem is a little bit komplexer: What happens if the user idles some times and after that time (for example 30minutes) comes back to his pc and wants to execute an action in the web application. Normally he should get an session timeout asp.net exception. I don't want that the user sees this asp.net errorpage, I want to redirect him to the Login Page and he should relogin and gets an error message shown something like "You were timed out. Please login again".
I'm still debugging my application so it's on the local server. As I debug and stop then debug again, eventually lblNoOfUsers.text turns to "0" instead of "1", even as I'm navigating my application. It only turns to "1" again if I log out and sign back in. It's almost as though Membership.GetNumberOfUsersOnline my login are referencing two different session states. How is this possible? Does asp.net create a new session state cookie each time I start debugging?
I am using Enterprise Library 5.0 - for exception handling. I am logging the exceptions in trace log file.When I publish the webapplication and deploy from my development machine IIS it works fine. When I deploy the same build on Windows Server 2003 R2 Service pack 2 it causes logout.Earlier I was using website for same application (We coverted website to webapplication due to some reasons) and I faced same problem while placing code on server. But when I published and kept the (published) precompiled code on server, logout problem resolved. But now with webapplication after publishing the problem exists.
While debuging I found that during exception logging due to session time out it is logging out. But why session time out on server when same thing work better on developement system IIS. Please suggest if I have to do any setting on server or any other solution.
is my session related tag in web.config file but most of the time if i idle 20 minutes then its automatically timedout and went to my login page, is there any solution ?
I have developed application in ASP.NET and placed on UAT server (windows XP IIS) where it worked fine but since I moved on production server (windows 2003 + IIS) after sometime its keep on expiring the session.
Please suggest urgently if possible how i can make it not to expire session at all.
I want to be able to detect from C# code how long ago a user logged into the site. I need to take a particular action if it is their first time logging in. IsNewSession does not work, unfortunately.
I set session timeout is 30 at my webconfig. But when i upload a file and click submit button already session timeout. I uploaded 1kb file. I can submit 1 time.
I totally have no idea on how to do this. How can I get the time everytime the user use my system. We are using AD account here so we don't have login and log out. All I want is as long as the user browse to my system whether he is working or it or not become away or any, I will record its time and save it in my database then accumulate all the time he spent in my system for admin reporting.
I have a web application which uses a session variable to store the logged in userid. If no user is logged in, of course this variable will be empty and the contents displayed on my website are meant for guests. If there is a user logged in, the user specific controls/access/links will then be a displayed.
I am now having issues with my hosting where on shared application pool, the worker recycle is triggered every 90 minutes, this will clear sessions causing all my users to be logged out. I opted for a dedicated application pool, which got worse because I am only allocated 50MB memory limit and if this is reached, the worker recycle is triggered and I lose my sessions again. I have tried as much as possible optimization techniques, e.g. dispose where possible, close connections, disable viewstate for static controls etc but my memory per instance keeps building up from page to page without any signs of improvement. I don't use loops nor store huge objects like bitmaps etc but my sessions are now gone even faster than 90 minutes in shared application pool before.
I have considered using SQL Session State but there isn't a simple guide on using this with MySQL. I am getting desperate and considering using a public variable, a string as a replacement to store logged in user id instead of in a session variable. I am pretty sure this will solve my issue with sessions being recycled but are there any negative consequences of doing this? One problem I can think of is if the user closes the browser, the system will never know that the user is now logged out and this public variable should be nothing. In this scenario, will the GC eventually clear this abandoned public variable.
I am writing a chat application, in which a chat starts in a chat room. Now, i want this room active only for a certain amount of time and not more. i.e 1 hour etc. So, to check the time constantly what and how should i write something in the background, so that when the time is over, the sessions of all the users logged in at that chat room get destroyed. And the users are again redirected to the login page. e.g The chat has been setup from 3 to 4 pm. At 3.55 everybody should be given a popup that the chat will end in 5 mins. And at 4 everybodys session should be destroyed and they should be redirected to the login page.
By default when the Session ends then the End-User should be directs to the login page and logs in again. Is there any way to open the login page in a new page rather than opening it in the same page(upon Session time out)?
I'm using sessions to track user name. I assign Session["userName"] in my login procedure. The sessionn gets timeout in about 15 minutes. What I need to do is, if the session timeouts I need to redirect the page to the Default.aspx page.
How can I do this? Any code example would be great.
I want to show countdown time in the status bar of browser like: You session will timeout in 40:00 minutes. You session will timeout in 39:99 minutes. I mean it should countdown to 0 and popup a window if user click Popup's Ok button then it should show a redirected page. No ajax support required. I want manually coding therefore I am not allowed to write anything in web.config also.
I noticed that when i am debugging my web application in Visual Studio 2005 using IIS, after about 10-15 minutes of inactivity, when I do something in the application such as a postback, I get an immediate error saying: "object reference not set to an instance" and my code breaks somewhere.Is my assumption correct that this is because my session has timed out? ( i do have a 15 minute default session time)my next question is, how do I display or set a way so that like many other pages, when the session has expired, a message will say: "This page must be refreshed" or "Your session has expired, click okay to refresh page" and start over again?