HttpContext导致bug?

时间:2013-12-07 12:30:23

标签: asp.net-mvc

我正在处理的系统中存在一个错误,用户每隔一段时间就会“丢失”他们正在处理的订单。

我有一些像这样的代码

if (System.Web.HttpContext.Current.Session[OrderProductsSessionKey] != null)
{
     model  =(EditOrderProductsModel)System.Web.HttpContext.Current.Session[OrderProductsSessionKey];
}

我没有看到进入这个区域的逻辑有任何问题,调试方法看起来没问题,但还没有能够重现它。我的问题是,这些cookie有可能变得腐败吗?什么会导致类似的事情以及可以做些什么来阻止它?

1 个答案:

答案 0 :(得分:5)

您如何存储该会话?如果您正在使用进程内存储(ASP.NET默认值),则任何应用程序池重新启动(循环)都将导致会话被清除。

默认情况下,IIS配置为每隔一段时间回收一次应用程序池。

切换到数据库或进程外会话存储可能会有所帮助。哪种方法最适合您的应用,取决于应用程序的类型及其部署方式。