我知道以下步骤允许我在 IIS 中配置超时值,但是它们之间有什么区别。默认情况下,web.config 文件中的 ASP.NET session 状态和 CookieTimeout 值也是如此,因为我在配置编辑器中看不到它们。如果是这样,我需要对 web.config 文件进行哪些更改以及它如何影响其他超时更改?
步骤
- session 超时默认为 20 分钟。该值受到影响 许多设置,包括应用程序池、ASP、ASP.NET session 状态,CookieTimeout。
- 打开 IIS 管理器
- 应用程序池 -> 高级设置 -> 进程模型 -> 设置空闲 超时(分钟)
- 站点 -> your-website-domain.com -> ASP -> session 属性 -> 暂停然后应用更改
- 站点 -> your-website-domain.com -> 配置编辑器 -> system.web/sessionState -> 设置超时值然后应用更改
- 站点 -> your-website-domain.com -> 配置编辑器 -> system.web/roleManager => 设置 cookieTimeout 然后应用更改
最佳答案
当应用程序池超时时,应用程序池被回收。如果您使用默认的 InProc session 存储,则在超时到期时所有 session 都将丢失。通常,每次有人从应用程序请求页面时,超时都会重置。
session 状态超时是 session 存储中 session 的到期时间。当此超时到期时,将从 session 存储中删除 session 信息并调用 Session_End。请参阅元素的文档,可以找到 here .
您提到的 Cookie Timeout 是角色管理器用于在 cookie 中缓存用户角色的 cookie 的过期时间。属性 cacheRolesInCookie 也必须设置为 true 才能生效——默认值为 false。引用文档 here .
我不认为默认情况下 session 状态或 cookie 超时包含在配置文件中,但这取决于生成配置文件的内容。如果您希望让 session 保持更长时间,您只需要设置 system.web/sessionState,只要您的网站有足够的流量来防止应用程序池回收(每 20 分钟访问一个页面)。由于应用程序池回收还有其他原因,因此使用 InProc 以外的其他存储机制之一可能是个好主意。如果您使用其中一种身份验证提供程序,它可能会有额外的超时。我知道表单例份验证有一个超时,您也想设置它。
关于asp.net - IIS 默认超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900452/