how to avoid session timeout in web.config

后端 未结 6 1908
清酒与你
清酒与你 2020-12-17 23:58

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

相关标签:
6条回答
  • 2020-12-18 00:40

    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>
    
    0 讨论(0)
  • 2020-12-18 00:48

    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

    0 讨论(0)
  • 2020-12-18 00:52

    See the HttpSessionState.Timeout Property property.

    0 讨论(0)
  • 2020-12-18 00:55

    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" />
    
    0 讨论(0)
  • 2020-12-18 00:58

    Just change the timeout to the minutes you want the session to last

    <!--<configuration>-->
    <configuration>
        <system.web>
            <sessionState timeout="20" />
        </system.web>
    </configuration>
    
    0 讨论(0)
  • 2020-12-18 00:59

    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>
    
    0 讨论(0)
提交回复
热议问题