Asp.net mvc HttpContext导致错误?

Asp.net mvc HttpContext导致错误?,asp.net-mvc,Asp.net Mvc,我正在处理的系统中有一个bug,用户经常会丢失他们正在处理的订单 我有一些这样的代码 if (System.Web.HttpContext.Current.Session[OrderProductsSessionKey] != null) { model =(EditOrderProductsModel)System.Web.HttpContext.Current.Session[OrderProductsSessionKey]; } 我看不出这个领域的逻辑有任何问题,调试到这个方

我正在处理的系统中有一个bug,用户经常会丢失他们正在处理的订单

我有一些这样的代码

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

我看不出这个领域的逻辑有任何问题,调试到这个方法看起来还可以,但还不能重现它。我的问题是,这些cookie是否可能被破坏?什么会导致这样的情况?可以采取什么措施来防止它?

您如何存储该会话?如果您使用的是进程内存储ASP.NET默认设置,则任何应用程序池重新启动回收都将导致清除会话

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


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

您如何存储该会话?如果您使用的是进程内存储ASP.NET默认设置,则任何应用程序池重新启动回收都将导致清除会话

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


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

此外,进程内会话仅对创建会话的服务器可用。许多共享主机提供商使用服务器集群进行负载平衡。如果请求在一个服务器上启动,则不能保证总是返回到该服务器,因此会话似乎丢失。对于那些未在共享主机提供程序上设置计算机密钥的用户,也可能发生同样的情况。用户注销。此外,进程内会话仅对创建会话的服务器可用。许多共享主机提供商使用服务器集群进行负载平衡。如果请求在一个服务器上启动,则不能保证总是返回到该服务器,因此会话似乎丢失。同样的情况也可能发生在那些没有在共享主机提供程序上设置机器密钥的用户注销时