9

我正在使用 ASP.NET 2.0 运行一个网站。时不时地(每天 100 多个用户每天 10 次以上)我收到此错误:表单身份验证失败 - 提供的票证已过期。

这是我的 web.config 片段:

<authentication mode="Forms">
    <forms name=".CLLSAUTH" loginUrl="login.aspx" protection="All" path="/" timeout="60" />
</authentication>

我看过几个解决方案,有人提到会话超时,但在我的配置中也是 60 分钟。还有两件事,我没有运行 webfarm,并且在错误发生时应用程序没有被回收。

有什么线索吗?

4

1 回答 1

3

我不确定你的问题是什么......在这种情况下,当用户打开浏览器超过一个小时时,他们的身份验证 cookie 会超时。下次他们向服务器 BAM 发送请求时。

尝试添加slidingExpiration="true"到表单元素。这样,每次用户点击服务器时超时都会重新启动。

这也可能是因为 IIS 回收了您的工作进程。您必须检查您的日志以查看是否在有人导致此错误之前发生了这种情况。

如果您的应用程序在不同的服务器上运行,则表单身份验证 cookie 中的机器密钥可能会出现问题,因为它源自不同的服务器。但从您的问题来看,这听起来不像是在网络农场上运行。

于 2008-11-12T17:47:12.190 回答