超时过期比预期快 - ASP.NET

Time-out expires faster than expected - ASP.NET

我有一个运行良好的应用程序,但是,当我在页面上停留很短的时间而没有交互时,身份验证失败并且登录页面 return。我正在尝试在我的网络配置中将其设置为 20 分钟或更长时间。

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx" timeout="20" />
</authentication>

<sessionState timeout="20"></sessionState>

...

<customErrors mode="Off" />
    <machineKey decryptionKey="AutoGenerate,IsolateApps" validationKey="AutoGenerate,IsolateApps" />

在应用程序设置上

<add key="aspnet:MaxHttpCollectionKeys" value="2000" />

我在我的 ISS 中看到了所有内容,尝试按照我在此处和 Microsoft 社区上找到的一些步骤进行操作,但会话继续过期的速度比我想要的要快。

你的SessionState是InProc吗?如果是,对您的应用程序池的任何回收都将清除您的会话。这可能是由于您重建应用程序以及 IIS 中的多项设置造成的。如果您希望会话持续更长时间,我建议您使用 StateServerSQLServer SessionState。

如果您不想更改 SessionState,请查看您的 App Pool 上的设置:

  1. 打开 IIS
  2. 选择应用程序池
  3. 右键单击您的应用程序池和select高级设置
  4. 找到空闲超时(分钟)并增加到一个更大的值。