【问题标题】:Why is my session timeout happening early? [duplicate]为什么我的会话超时提前发生? [复制]
【发布时间】:2016-06-07 10:37:16
【问题描述】:

我在 web.config 文件中将会话超时设置为 2880 秒(48 分钟):

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <sessionState mode="InProc" timeout="2880" cookieless="false" customProvider="DefaultSessionProvider" >
        <providers>
            <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" connectionStringName="DefaultConnection" />
        </providers>
    </sessionState>
</system.web>

当我在本地运行这个程序时,它可以工作,但是当我在部署后在线测试它时,我的会话在 20 分钟后超时。

【问题讨论】:

  • 如何部署?您的部署过程是否应用了任何 web.config 转换?如果是,请查看 web.release.config 文件并确保没有更改超时值。
  • @iamruss 不,它不应用任何转换,并且 web.release.config 具有相同的超时值。

标签: asp.net asp.net-mvc session session-timeout


【解决方案1】:

sessionState 中,超时以分钟为单位....尝试将行更改为:

<sessionState mode="InProc" timeout="48" cookieless="false" customProvider="DefaultSessionProvider" >

然后看看...

【讨论】:

  • 是 48 分钟吗? @samGhatak
  • 2880 秒是 48 分钟....所以我猜到了
【解决方案2】:

sessionState 中的 timeout 属性可以设置时间,单位为分钟,默认超时时间为 20 分钟。

你可以使用。

<sessionState mode="InProc" timeout="2880" cookieless="false" />

有关更多信息,请参阅此链接。 https://msdn.microsoft.com/en-in/library/h6bb9cz9(v=vs.85).aspx, How to set session timeout in web.config

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多