【问题标题】:Problem with session timeout in C#C#中的会话超时问题
【发布时间】:2011-07-06 12:31:27
【问题描述】:

在我的 web.config 文件中,我尝试了 Session.Timeout="1" 并发现工作正常。后来我尝试了Session.Timeout="20160"。即使我提供如此大的数量,我的网站“会话转移”也会在 15-20 分钟内过期。我需要更改 IIS 中的任何设置吗?我使用的是 Windows 2003 服务器。

【问题讨论】:

  • 您是否有机会为您的页面使用表单身份验证?
  • 不确定,但我认为是的。它的默认 IIS 随 windows 2003 服务器提供。
  • 网站关闭了吗?如果网站处于非活动状态,会话超时不会阻止您的网站应用程序域被 IIS 关闭。尝试在 Global.asax 中记录 Application_End 事件。您可以在站点的 IIS 配置中增加空闲超时。
  • 我正在将代码从一个页面发送到另一个页面以进行身份​​验证。此代码当前存储为会话。当我立即重新加载页面时没有问题。如果我在 20 分钟后重新加载页面,页面将被重定向到登录页面。即页面上没有更多的会话代码。
  • 如果正好是 20 分钟,那么这也是默认的空闲超时 - 因此,如果您的站点在 20 分钟内处于空闲状态,请在 iis 设置中增加空闲超时。

标签: c# asp.net session windows-2003-webserver


【解决方案1】:

在网页配置文件中定义:

<sessionstate 
      mode="inproc"
       cookieless="false" 
      timeout="20" 
     />

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我在一个月前使用这些设置配置了我的服务器,但是为了将 20 的值更改为 14400,我禁用了该复选框并保存了设置。希望这将被优化到最大时间。
    【解决方案3】:

    在 web.config 文件中定义:

     <system.web>
         <authentication mode="Forms">
             <forms timeout="50" />
         </authentication>
     </system.web>
    

    【讨论】:

    • 中的声明呢
    • 在那种情况下,我发布一个新问题来了解它们的区别是什么?
    • 无cookie会话很容易被劫持,所以尽量避免。以下文章概述了这些问题。 troyhunt.com/2010/07/…
    • @Nick - 但是它的 cookieless="false" na?
    • @kars,只是想指出避免无 cookie 会话的重要性。
    【解决方案4】:

    似乎会话超时最长为 24 小时。看看这个http://support.microsoft.com/kb/233477

    将其设置为 24 小时或更短,您会没事的。

    这里也有解释:http://msdn.microsoft.com/en-us/library/ms525473(v=vs.90).aspx

    IIS 6.0:允许的最小值是 1分钟,最大值为1440 分钟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-24
      • 2013-02-18
      • 2011-09-21
      • 2017-12-01
      • 2011-05-09
      相关资源
      最近更新 更多