Why HttpSession Session Times Out
Dec 15, 2010
I'm trying to track down an issue on an ASP.NET v3.5 application where the HttpSession times out before its (default) 20 minutes. We're seeing behaviour where the session is lost only a few minutes into a session, at random and with no discernible cause such as unhandled exceptions. As far as I can tell, the ASP.NET worker process is not dying, otherwise that would have explained the dropped session.
What approach should I use to monitor when the session is dropped? Is there some event I can listen to, or some other hook in the System.Web namespace? Also, can someone confirm that the countdown to expiration is reset by web activity? That is, the session's lifetime gets reset to the (default) 20 minutes each time the web client makes an HTTP GET or POST?
View 2 Replies
Similar Messages:
Dec 10, 2010
Whats the best way to log out a user when a session ends or expires?
View 2 Replies
Jan 15, 2011
I want a specific session variable (in my case Session["level"]) to expire either on the normal 20 min. timer or at 19:30 every day. Because I change a value in my database everyday at 19:30 and I want this session variable to be related to that value. Is this possible?
View 1 Replies
Aug 10, 2010
I have a web application that was working fine. I had to make minor changes that had nothing to do with the Session object in any way. When I run local everything works fine. When I publish to our testing box it all runs fine. When I publish to production it times out on the Session object. Dozens of other applications on the production server run fine and have no trouble with Session.
It does not matter if the line is:
Session("PreferredName") = sPreferredName
or:
sPreferredName = Session("PreferredName")
I had the server admin remove the application pool and directory and recreate them and then I republished and it still happens.
View 3 Replies
Nov 24, 2010
I have a ASP.NET website which uses forms authentication. The timeout is twenty minutes.
I have noticed that if a user half completes a form, and is then timed out, they are redirected to the login page, fill it in, and are redirected back to the form but with EMPTY controls.
I had prevously assumed that ASP.NET would use some skulduggery to repopulate the form controls when this happens.
View 2 Replies
Jul 29, 2010
We have an MVC.NET application that encounters fatal errors when it restarts. In our Session_Start event handler, we add the session id to a dictionary. In the Session_End handler, we remove it. Consider the following sequence of requests:
GET home.mvc
<application restarts>
GET main.css
GET banner.jpg
GET somedata.mvc
...
Because of the way the application is architected, this sort of sequence happens fairly frequently if you do a rebuild while the application is open in a browser window. That wouldn't be terribly concerning except that I see it in production environments too. For example, it will occur (albeit rarely) when you edit web.config.
The requests following the restart are all due to links in the home page or AJAX calls from JavaScript.
What I observe is that .NET handles the first 5 requests in parallel. Each such request causes it to fire the Session_Start event. After a short time, it fires the Session_End event 3 times. To be clear, each Session_Start corresponds to the exact same session. They all have the same session id and the IsNewSession property is true for all session state objects. Also, the Session_End events do not correspond to the session being killed. The session persists, along with any data stored in session state.
I need to either prevent it from firing Session_Start more than once or figure out how to tell when Session_End doesn't really mean that the session has ended.
View 2 Replies
Feb 1, 2010
My ASP.NET intranet web application uses Windows Authentication, and I would like to record the following details:
1) Windows ID
2) Session Start Time
3) Session Stop Time
4) URL being browsed to (optional)
I've got some basic code setup in "Session_Start" method of the Global.ASAX to log session start times (seen below), but that's it so far. I have the feeling this is a primitive approach and there are "better" ways of doing this. So I really have two questions:
1) Is this the right way to go about doing this? If not what are some other options?
2) If this is the right way, do I just need to drop some code in the "Session_End" method to record the time they exit, and thats a complete solution? Does this method always get called when they close the browser tab they have the site open in, or do they have to close the entire browser (I don't have logout functionality)? Any way users can skip over this session end method (or start for that case)?
Dim connsql As New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("MyConnectionstring").ConnectionString)
Dim cmdsql As System.Data.SqlClient.SqlCommand = connsql.CreateCommand
cmdsql.CommandText = "BeginUserSession"
cmdsql.CommandType = Data.CommandType.StoredProcedure
Try
cmdsql.Parameters.Add("@windowsid", System.Data.SqlDbType.VarChar, 30, "windowsid")
cmdsql.Parameters("@windowsid").Value = Session("UserInfo").identity.name
If connsql.State <> System.Data.ConnectionState.Open Then connsql.Open()
cmdsql.ExecuteNonQuery()
connsql.Close()
Catch ex As Exception
Finally
If connsql.State <> Data.ConnectionState.Closed Then connsql.Close()
End Try
'Stored Proc records start time
View 3 Replies
Jan 27, 2010
I would like to wrap Session variables in a manner similar to that discussed on CodeProject.
[code]....
Here is my question: if I have to access CurrentUser multiple times in the same page, would I get a performance improvement by assigning it to a local variable instead of accessing the wrapping property? Or does the HttpSessionState make sure the object is only deserialized once per request, so that subsequent calls in the same http request don't cost any more?
View 4 Replies
Jan 22, 2010
In my web application I have a multiview that includes a few datagrids in which the user needs to enter some data. It takes approximately 20 minutes to complete the process, including user registration.
In order to prevent the system to time out before the user ends the process, I added the following to my web.config file: <sessionState mode="InProc" cookieless="false" timeout="120"/> , which according to what I have read, gives 120 minutes before the system times out. However, I get a timeout flag after a few minutes instead of after 120 minute, and all the information the user enters is erased.
View 9 Replies
Oct 29, 2010
I'm using code like
[URL]
but, its not going to loops 15 times. I don't know how to use it.
View 20 Replies
Jan 7, 2011
i have hyperlink in gridview i need get value column ID when click on link in the same row i think need activating property autopostback for gridview.
my case for clarification:
ID BookName Description Link ViewNo
1 mmm dsfsdf Download 0
2 kkk ddd Download 0
i need get row ID to calculate the times seen for the file.
View 6 Replies
Feb 5, 2010
I have a program which listerns to a specific directory and do some stuff once file is created on that directory. The thing is this works perfectly fine when I run it manually for testing. Meaning that when I copy and paste files in to that directory it work just fine.
Then I test it against our business system and had this problem. When our business system generates a file in that directory event fires 2-3 times and this leads to lof of problems.
Here is my code
[Code]....
View 1 Replies
Mar 11, 2011
One of the test case requirement is to run the same query ie URL for N number of times. Consider a google search that will have a text box and a Search button. I want to search a string such as "Test API" for N number of times. I can't do this test manually because i have to refresh the browser or hitting the button for so many number of times. I know, we will be getting the same results but that will change the page ranking. Is there any script available to automate this test case in C# or any language?
View 1 Replies
Dec 10, 2010
I have a simple asp.net web forms page that does an insert to my sql server db. My server was running slow at the time and I pressed Insert button several times because I didn't think it took but it did all 3 times.So I have duplicates from that one interaction. How would I prevent this?
View 2 Replies
Feb 19, 2010
I have a question that I can't quite find the answer to...
If you have an ASP.Net page that takes longer than the request time-out to render what happens to that process? Does the web service abort it?
Lets say I'm writing XML to the response stream in an ASP.Net page and it times-out calling my GenerateXML method. What happens to my method call? Does it complete but the web server reports the time out? or is it aborted?
I could probably write a test to see my own results but I figure there might be more to it.
View 2 Replies
Apr 25, 2010
I haven't made any code or configuration changes (that I know of) to my ASP.NET web application and this morning it suddenly stopped showing the AM in my displayed times. PM still shows up, just not AM. It's hosted on Windows Server 2003. I figured somehow the OS regional settings might have been changed somehow, but that doesn't appear to be the case. How could this have happened?
I was able to change the OS time format to hh:mm:ss tt and then back to h:mm:ss tt and it seems to have fixed my app. I'm going to assume that the hosting company made some kind of change unless somebody has a better idea
View 1 Replies
Jun 2, 2010
I'm fairly new to ASP and would like to know how to display certain text between Monday to Friday 8:30am to 4:30pm.
When its not Monday to Friday 8:30am to 4:30pm I would like nothing to be displayed
View 2 Replies
Jun 17, 2010
I want to get record between two times. viz I want to get record of my site visitors from yesterday's 8pm to todays 8pm. what can i do?
View 4 Replies
Jul 7, 2010
I have Forms authentication and I need a custom object to be stored in HttpContext.Current.User and in Thread.CurrentPrincipal.
To get this, I listen to PostAuthenticateRequest event, then read from the DB all the user data I need to be stored in HttpContext.Current.User and in Thread.CurrentPrincipal, then I instantiate custom IPrincipal and IIdentity objects and assign them to the above locations.
The problem is that for some reason PostAuthenticateRequest fires several times for a single request.. This causes unnecessary DB roundtrips that hurt performance..
How should I address this? (ASP.NET MVC 2)
View 2 Replies
Feb 14, 2011
I have a website I created for people in our database to update their information. So an email is sent with a link to each person. Once they click the link their profile is loaded.
Now I need to stop them accessing the site because the update period has expired. How can I redirect to a page that says "Update Period has expired" at all times.
View 6 Replies
Oct 20, 2010
var startTime = new DateTime(2010, 10, 1, 9, 0, 0);
var endTime = new DateTime(2010, 10, 1, 16, 0, 0);
var interval = 11;
So given a start time of 9am, an end time of 4pm and an interval of 11 how can I find out how many time slots there are between the start and end times?Does that make sense? I know the answer will be 43 time slots, but how to derive it?
View 7 Replies
Feb 24, 2011
With this code, it displayes the horizontal scroll bar but not the vertical at first, BUT if you minimize your screen, the vertical kicks in, i would like to have them both be there at all times, how can I code this?
[code]....
View 1 Replies
Aug 25, 2010
I have 3 textboxes. In the first two, times will be entered (an IN and OUT time) and the third textbox needs to subtract the two times from txtbox1 and txtbox2. Somehow I need to validate the times are entered correctly into txtbox1 and txtbox2. Right now, if the first txtbox is blank, it brings in the system time in the following format on the code behind:
[Code]....
The txtTimeOut.Text box needs to be validated somehow to the same format of hh:mm tt and then the third txtbox should be the difference of the two txtboxes.
View 15 Replies
Dec 2, 2010
I have one dropdownlist with 10 items and one button.(Item name starts from index 0). It i select one item in dropdownlist and click on Button. The selected item should come to first. How do i do that?
View 2 Replies
Nov 15, 2010
My basic structure is that I have a table on a page, which I want to reload without refreshing the entire page. So on clicking a button on the page it fires of this:
function RefreshMissionsAjax() {
//fade out the old table.
$(clientID('MissionsDisplay')).fadeOut(500);
//request the new value from the page (calls the GetIncompleteMissions() method in the MissionViewer.aspx.cs page)
$.ajax({
type: "POST",
url: "MissionViewer.aspx/GetIncompleteMissions",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$(clientID('MissionsDisplay')).html(msg.d);
$(clientID('MissionsDisplay')).fadeIn(500);
},
error: function (xhr, ajaxOptions, thrownError) {
$(clientID('MissionsDisplay')).html('An error occured while trying to refresh the page data.');
$(clientID('MissionsDisplay')).fadeIn(500);
}
});
}
And I have in the code bedind of an aspx page:
[WebMethod]
public static string GetIncompleteMissions()
{
return GetHTMLTable();
}
This method just grabs some data, and creates a html table - nothing too fancy. When the returned table is small (a dozen rows or less) then it works like a charm. But when it gets larger, it takes a long long time. At 100 rows it can take 5 minutes to render the table. At 1000 rows I have left it for 30 minutes and nothing will happen after the fadeout. (NB - it loads fairly quickly on the pageload, before the ajax refresh is used, so it is not the actual server side creation of the table thats the problem).
This is my first real attempt at doing something like this, so I dont know if this is the best way to do it - it was just something i pieced together that worked great when i was testing with small datasets. Now, not so much.
View 1 Replies