重定向后会话随机结束
本文关键字:结束 随机 会话 重定向 | 更新日期: 2023-09-27 18:11:24
我在asp.net MVC 4中有一个奇怪的问题。在AccountController我正在对某些操作进行重定向,并在此之前将数据放入TempData(存储在Session中):
[AllowAnonymous]
public ActionResult Activate(string token)
{
new CustomSignupService().Activate(token);
TempData["Message"] = "User was successfully confirmed";
return RedirectToAction("Message", "Home")
}
现在我知道在这种情况下我可以返回共享消息视图,但这只是一个重现问题的代码示例。
CustomSignupService。Activate通过NHibernate进行数据库查找并在事务中更新用户(用户激活)。有时(让我们说1/5尝试在5分钟内)TempData没有使它通过重定向,所以我添加了登录到Session_End,并注意到会话结束时RedirectToAction被调用。在那之后,Session_Start被调用,当然TempData也消失了。
会话有默认超时时间(20min),控制器使用SessionStateBehavior。只读的
任何想法?
步骤1:它不是应用程序池回收(我打开了应用程序池上的所有一般回收事件日志条目并检查了事件日志,在会话重启后,但回收不是导致它)
我遇到了Session丢失的问题。我使用提琴手,并注意到有一个重复的ASP。. NET会话cookie带有空值。我不知道它是怎么到那里的。因此,每个请求都会创建一个新的会话。我删除了重复的cookie,问题就解决了。
其他不太可能的原因有:
IIS进程回收
会话。放弃调用
修改bin文件夹或web。配置导致应用重启
查看此页面:
会话状态丢失
不懂ASP。. NET MVC,但在黑暗的世纪里,我用的是ASP。. NET没有MVC。我有几次因为意外的会议结束而挣扎。大多数情况下,它是由文章http://www.c-sharpcorner.com/uploadfile/technoNet/session-timeouts-causes-and-remedies/
中描述的一些简单的事情引起的。有时,服务器在事件日志中有条目,可以为您提供更多信息。
和其他一些解决方案可能是
ASP。. NET会话突然结束
IIS会话超时时间