表单Cookie在生产服务器上过早过期

时间:2011-07-02 12:37:47

标签: asp.net-mvc asp.net-mvc-3 asp.net-membership forms-authentication

我在web.config中有以下设置

<authentication mode="Forms">
      <forms loginUrl="~/Account/login"   
       slidingExpiration="true" timeout="2880" protection="All" />
 </authentication>

但cookie会在不到五分钟的时间内到期。有关正在发生的事情的任何线索?

1 个答案:

答案 0 :(得分:1)

我从运行其中一个网站的网络托管服务商处认识到此行为。这一切都是在迁移到为dotNET 4准备的新服务器时开始的。完全忽略了web.config,正如你所提到的,五分钟似乎是断点。

你的问题让我开始四处寻找,寻找工作。我首先在Stackoverflow上浏览forms-authentication类别,这是您使用的标签之一。几分钟后,我发现了一个类似的问题:ASP.NET forms authentication keeps displaying login page。在接受的答案中,建议设置cookieless="UseCookies

我检查了自己的web.config,发现cookieless被遗漏了,退回到默认配置。快速编辑和一些测试给出了积极的结果。它运作得很好。但后来我把文件编辑回来,就像以前一样,现在已经为我们的十个工作会议了。我添加了meta-refresh,每十分钟重新加载一次页面。也许托管公司已经调整了一些参数。可悲的是我找不到你的解决方案:(

不要在Visual Studio附带的Web服务器中运行您的服务,而是尝试在IIS中本地运行它,看看您是否可以重现该问题。

(为了帮助用户回答这些问题,我想如果您提供有关生产服务器,组件版本和内容的一些信息会有所帮助。比如您运行的是哪个版本的IIS以及您构建的框架版本。您在测试中运行您的站点是否在Visual Studio中使用IIS或轻量级Web服务器?)