Reputation: 283
What should I write in web config file in asp.net so that my session time is extended. and please tell me the exact location where should I place the code in web config
Upvotes: 8
Views: 48437
Reputation: 3777
Just change the timeout to the minutes you want the session to last
<!--<configuration>-->
<configuration>
<system.web>
<sessionState timeout="20" />
</system.web>
</configuration>
Upvotes: 7
Reputation: 18013
If you are trying to stop the session from timeing out all the time you can do this rather than increasing the session timeout.
KeepAlive.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="KeepAlive.aspx.cs" Inherits="Pages.KeepAlive" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ OutputCache Location="None" VaryByParam="None" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
KEEP ALIVE
</div>
</form>
</body>
</html>
Keep Alive.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Pages
{
/// <summary>
/// Page to keep the session alive
/// </summary>
public partial class KeepAlive : System.Web.UI.Page
{
//- EVENTS ------------------------------------------------------------------------------------------------------------------
#region Events
/// <summary>
/// Page Load
/// </summary>
/// <param name="sender">object</param>
/// <param name="e">args</param>
protected void Page_Load(object sender, EventArgs e)
{
try
{
//Add refresh header to refresh the page 60 seconds before session timeout
Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 60));
}
catch (Exception)
{
throw;
}
}
#endregion Events
//---------------------------------------------------------------------------------------------------------------------------
}
}
Then in your master page create an iFrame that refreshes to keep the session alive
<iframe id="Defib" src="KeepAlive.aspx" frameborder="0" width="0" height="0" runat="server">
</iframe>
Upvotes: 12
Reputation: 253
You can specify session time out in web.config file, can also use timespan--20 minutes is default, also The timeout attribute cannot be set to a value that is greater than 525,601 minutes (1 year) for the in-process and state-server modes.
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieName="session identifier cookie name"
cookieless=
"[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
regenerateExpiredSessionId="[True|False]"
sqlConnectionString="sql connection string"
sqlCommandTimeout="number of seconds"
allowCustomSqlDatabase="[True|False]"
useHostingIdentity="[True|False]"
stateConnectionString="tcpip=server:port"
stateNetworkTimeout="number of seconds"
customProvider="custom provider name">
<providers>...</providers>
</sessionState>
Upvotes: 3
Reputation: 328
You can change the amount of time a session can be idle before it is discarded by adjusting the timeout attribute within the Element.
Remember that the timeout value is set in minutes.
*timeout:*Specifies the number of minutes a session can be idle before it is abandoned. The timeout attribute cannot be set to a value that is greater than 525,601 minutes (1 year) for the in-process and state-server modes.
For reference please see http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.80).aspx
Upvotes: 2
Reputation: 13621
You can change session timeout value in web.config.
If the desired session timeout is 60 minutes, markup code in web.config should look like this:
<system.web>
<sessionState timeout="60" />
Upvotes: 1