2008-11-12 156 views
9

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

这里是我的web.config片断:

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

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

任何线索?

+0

这是由应用程序池的回收,会话超时和认证超时控制。 – 2008-11-12 17:46:30

+1

为什么这是关闭的话题?这是一个编程相关的问题。 – Junto 2010-11-15 10:52:57

回答

3

我不知道你的问题是什么......在这种情况下,当一个用户都有自己的浏览器中打开了一个多小时,他们的身份验证cookie超时。下次他们向服务器BAM发送请求时。

尝试增加slidingExpiration="true"的形式元素。这样,每次用户点击服务器时,超时都会重新启动。

这可能也可能是因为IIS回收你的工作进程。你必须检查你的日志,看看是否有人发生这种错误之前发生。

如果您的应用程序在不同的服务器上运行,则可能是在窗体身份验证cookie机器关键的问题被拒绝,因为它起源在不同的服务器上。但这听起来并不像你从你的qeustion网站上运行。