我已将Idle-timeout设置为1分钟以进行测试。另外,我将SessionState超时设置为3分钟。 SessionState超时工作正常,但IIS空闲超时不起作用?
为了您的信息,我检查了文件ApplicationHost.config,设置已经存在
<system.applicationHost>
<applicationPools>
<add name="dev_web_core" autoStart="true" startMode="AlwaysRunning">
<processModel idleTimeout="00:01:00" />
<recycling>
<periodicRestart time="00:00:00">
<schedule>
<clear />
<add value="01:00:00" />
</schedule>
</periodicRestart>
</recycling>
</add>
</applicationPools>
</system.applicationHost>
答案 0 :(得分:0)
根据您的评论,您似乎期望应用程序池idleTimeout
导致身份验证超时。这是无关的。此超时会触发应用程序池回收,这会导致应用程序进程停止(并在请求到来时续订)。
发布的身份验证票据不受此流程回收的影响(至少使用Asp.Net Identity等框架,前提是您的站点机器密钥不会更改)。
您应该寻求并设置身份验证框架的超时。以Owin为例,可以在发出票证时进行设置。
var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
// Your custom expiration, preferably taken from some settings
var expiration = rememberMe ? 144000 : 30;
var now = DateTimeOffset.UtcNow;
authenticationManager.SignIn(
new AuthenticationProperties
{
AllowRefresh = true,
IssuedUtc = now,
ExpiresUtc = now.AddMinutes(expiration),
IsPersistent = rememberMe
}, claimsIdentity);