会话状态超时,身份验证超时,应用程序池空闲和服务器会话状态

时间:2014-09-25 15:51:48

标签: asp.net iis timeout session-timeout

从我的配置设置我的表单身份验证超时和sessionState超时似乎永远不会产生预期的效果。我总是要在服务器上的网站上设置sessionstate超时,看起来我也需要设置应用程序池空闲超时。

如果服务器可以覆盖它,配置设置的重点是什么?

严格按照身份验证和保持用户登录的时间,设置的优先级是什么?我没有对此进行过广泛的测试,但感觉如果4个设置中的任何一个不同步,用户就不会出现可预测的时间。

1 个答案:

答案 0 :(得分:0)

最重要的是它们完全不相关。 表单身份验证超时与会话超时无关。表单身份验证超时可能会或可能不会滑动,只存储身份验证cookie。即使它们被设置为滑动,用户仍然必须在超时的中途点之后与服务器交互以使其滑动,否则它不会。

如果需要,会话超时就是存储X时间的数据,超时将会滑动。

应用程序池可以保证一切顺利运行。应用程序池需要经常回收并且可能具有破坏性,但这是应用程序的健康状况以及他们担心的服务器。当然,如果您不使用状态服务器或在数据库中存储会话,则会话可以结束也被杀了。

在这种情况下,有些事情会有所帮助: 明智地使用会话,因为它是资源的猪,并且总是有一种方法来检查空值并重新创建所需的对象/值(如果它为空)。 为您的应用创建一个机器密钥。这将确保应用程序加密数据的方式不随每个应用程序回收而更改。如果发生回收,则可能会对登录用户产生影响,因为故障单的加密可能不匹配。如果需要,创建显式machinekey的一个很好的副作用也可以帮助您使用webgarden,但前提是您在db中存在状态服务器或存储会话,因为在内存会话中无法在进程间共享。

所以他们不是相互关联的,但可以相互影响。我也不希望应用程序拥有自己的设置来覆盖应用程序池设置,因为设置良好的应用程序池可以使站点和服务器保持健康并且运行良好,这是它胜过一切的主要原因。