asp.net - IIS 默认超时

标签 asp.net iis

我知道以下步骤允许我在 IIS 中配置超时值,但是它们之间有什么区别。默认情况下,web.config 文件中的 ASP.NET session 状态和 CookieTimeout 值也是如此,因为我在配置编辑器中看不到它们。如果是这样,我需要对 web.config 文件进行哪些更改以及它如何影响其他超时更改?

步骤

  1. session 超时默认为 20 分钟。该值受到影响 许多设置,包括应用程序池、ASP、ASP.NET session 状态,CookieTimeout。
  2. 打开 IIS 管理器
  3. 应用程序池 -> 高级设置 -> 进程模型 -> 设置空闲 超时(分钟)
  4. 站点 -> your-website-domain.com -> ASP -> session 属性 -> 暂停然后应用更改
  5. 站点 -> your-website-domain.com -> 配置编辑器 -> system.web/sessionState -> 设置超时值然后应用更改
  6. 站点 -> 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/

相关文章:

asp.net - 如何构建新的 ASP MVC 应用程序?

c# - ASP.NET C# 验证用户名和密码

asp.net - 当主机名中的下划线时,表单例份验证无法识别为在 IE 下登录

asp.net - 使用冒号(:) in a url with ASP. NET/IIS

c# - 如何在 asp.net 列表框中获取多个选定项并显示在文本框中?

asp.net - Ajax工具包TextboxWatermarkExtender : How to change the text from Javascript

c# - 具有完整框架的 ASP NET Core 2

c# - 使用客户端证书的智能卡身份验证

iis - 在 IIS 7.5 上运行 ASP Classic

asp.net - 忽略在 IIS 中为代码 400(错误请求)配置的自定义错误页面