有没有办法记录由于会话超时而发生错误

时间:2018-06-15 15:07:16

标签: c# asp.net-mvc session elmah

我们得到了很多

  

对象引用未设置为对象的实例。

我和一些客户谈过他们在发生这些事情时所做的事情。我得到的答案是,他们有点退休,他们回来了,会议已经超时了。

现在我知道我可以检查会话并在代码中重定向客户 - 无论多么广泛。我想知道的是任何"覆盖所有"可以在操作引发错误之前重定向操作的技术。而且,更重要的是,我如何登录Elmah,错误(或之前的错误)是由会话超时引起的。我不想记录每个会话超时,这很愚蠢,但是像应用程序错误 - 检查会话超时 - 报告它是这样。

- 更多信息 - 我已经继承了这个项目,并且它有大约330,000行代码,我没有时间检查/重构所有代码,我也不能依赖这些错误来抓住它们,我'我已经这样做了,我试图找出那些值得调查的错误。

1 个答案:

答案 0 :(得分:0)

如果您依赖会话中的值,那么您应该主动检查会话中的值是否存在

您可以在登录时设置一个名为“MyKey”的会话变量,并使用以下内容检查它是否已超时:

if (Session["MyKey"] == null)  {
    //Code here to log session timeout error
    ...
    // Code here to redirect to login page
    ...
}

这样你就不应该抛出有开销的异常,如果会话超时,你可以将用户重定向到非错误页面。