我在IIS 6.0中运行ASP.NET 2.0应用程序.我希望会话超时为60分钟,而不是默认的20分钟.我做了以下事情
在web.config中设置
在IIS管理器/网站属性/ ASP.NET配置设置中将会话超时设置为60分钟
在应用程序池属性/性能中将空闲超时设置为60分钟.
我仍然在20分钟时获得会话超时.还有什么我需要做的吗?
你在使用Forms身份验证吗?
表单身份验证使用自己的超时值(默认为30分钟).表单身份验证超时会将用户发送到登录页面,会话仍处于活动状态.这可能看起来像您的应用程序在会话超时时提供的行为,从而容易将其中一个与另一个混淆.
将表单超时设置为小于会话超时的值可以为用户提供一个窗口,可以在其中重新登录而不会丢失任何会话数据.
在web.config文件中使用以下代码块.默认会话超时为80分钟.
使用以下链接进行会话超时和弹出警报消息.
会话超时示例
仅供参考:以上示例使用devexpress弹出控件完成,因此您需要使用正常的弹出控件自定义/替换devexpress弹出控件.如果您使用devexpress无需自定义
我不知道web.config或IIS.但我相信,从C#代码中你可以做到这一点
Session.Timeout = 60; // 60 is number of minutes
这通常都是你需要做的......
你确定在20分钟之后,会话丢失的原因是因为闲置...
关于会议可能被清除的原因有很多.您可以为IIS启用事件日志记录,然后可以使用事件查看器查看会话被清除的原因...您可能会发现它可能是出于其他原因?
您还可以阅读事件消息和相关事件表的文档.
在我的情况下,它是应用程序池.它被设置为在空闲xx分钟时重新启动.当我将其设置为不重新启动时,它似乎使用来自Web Config的值.
你在machine.config中有什么可能生效吗?在web.config中设置会话超时应覆盖IIS或machine.config中的任何设置,但是,如果应用程序的子文件夹中有某个web.config文件,则该设置将覆盖应用程序根目录中的设置.
另外,如果我没记错的话,IIS中的超时只会影响.asp页面,而不会影响.aspx.您确定web.config中的会话代码是否正确?它应该看起来像: