【发布时间】:2016-12-05 19:45:42
【问题描述】:
假设在一个应用程序中同时有多个用户在线。由于某种原因,有 4 个用户出现异常。由于我们在 Global.asax 文件中实现了全局异常处理,因此我们向所有用户显示自定义错误页面并使用以下代码记录错误:
var currentException = Server.GetLastError();
logger.LogDetails(currentException); // some logging code
Server.ClearError();
- 用户 1 出现除以零异常。
- 用户 2 收到无效的强制转换异常。
- 用户 3 遇到索引超出范围异常。
- 用户 4 遇到了一些 Sqlexception。
在这种情况下,这个 Server.GetLastError() 会返回什么? 另外,我需要记录异常。所以可以把它想象成,我想记录基于用户的异常作为键和异常详细信息作为描述。因此,对于用户 1,将有一个类似于 User=U1, ExceptionDescription="Divide By zero" 的日志条目。
正如史蒂夫在 cmets 中建议的那样,我可以使用 HTTPContext 获取当前用户,但仍然无法获取他们会话中发生的异常。我怎样才能做到这一点?
【问题讨论】:
-
全部 4 个,4 次
-
那么我怎样才能获得需要记录的用户特定异常详细信息?
-
我猜你可以检查 httpcontext 看看是哪个用户
-
但是 Server.GetLastError 仍然不会返回不特定于当前用户的随机异常。
-
不太明白你的问题。上下文将是当前用户,否则您将如何将正确的用户重定向到正确的错误屏幕
标签: c# asp.net asp.net-mvc exception-handling