我有一个网站,其中用户的ID保存在会话对象中 并且用户执行的任何操作都会测试会话以查看它是否为空 有时,在其中一个用户操作中发生异常,然后抛出所有会话 是什么让所有用户被抛出登录页面,这是一个非常严重的问题。 我必须找到失败抛出所有会话的情况 我有一个样本错误发生在我身上,不确定这些情况是否是原因: 例如:
简而言之,我该怎么办? 从哪里开始寻找? 谢谢 米莎
答案 0 :(得分:0)
根据您的设置,这可能非常有用:Configure SQL Server to Store ASP.NET Session State。
答案 1 :(得分:0)
在global.asax中设置一个全局错误处理程序,以便优雅地处理这些错误 当然 - 使用提供的堆栈跟踪检查这些错误的来源,以完全避免它们。
答案 2 :(得分:0)
听起来您的应用池正在回收。
如果会话配置为正在进行且您的应用池已回收,那么您将丢失所有会话信息。从你的其他问题来看,这听起来很有可能。
我要做的第一件事就是将sql server作为后备存储,将会话移出进程。通过这种方式,他们可以在应用程序池中循环使用并缓解问题。
接下来,您将想知道应用程序池回收的原因。应用程序池通常配置为在某些条件下进行回收,例如高内存使用或代码部署。分析应用程序以查看您是否未正确处理对象;数据库连接是主要连接。还有其他的回收触发因素,例如按计划等等。
如果出于某种原因由于代码部署而出现这种情况,那么我建议您在新代码丢失时设置计划维护期。