【问题标题】:ASP.Net Web API exception filter, logging to database failingASP.Net Web API 异常过滤器,记录到数据库失败
【发布时间】:2016-03-29 11:13:53
【问题描述】:

在我们的 ASP.Net Web API 应用程序中,我们计划通过全局异常过滤器属性来处理异常,详情请参阅以下link

我们计划将异常记录到数据库等多种介质中,使用 NLog 的文件。让我感到困惑的是像数据库这样的介质,如果我们记录并且出现诸如数据库关闭、连接超时和其他多个异常之类的异常,那么它将进入无限循环,因为它会不断尝试记录异常,这将继续返回一个例外。

是否有机制限制它尝试 1 或 2 次,然后静默失败,不进入无限循环,任何指针

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc asp.net-web-api


    【解决方案1】:

    我们计划将异常记录到多种媒体中,例如 数据库,文件使用 NLog。令我困惑的是像数据库这样的媒介, 如果我们登录并且出现数据库关闭等异常,则连接 timeout 和其他多个,那么它将进入无限循环,因为它 将继续尝试记录异常,这将继续返回 例外。

    这就是为什么您应该绝对确保您的日志记录代码永远不会失败。例如,将其包装在 try/catch 语句中。

    【讨论】:

    • 如果我使用异常过滤器,我是否可以使用 Try Catch 块,因为我正在覆盖一个 OnException 方法,该方法会在异常时自动触发,除非我开始检查特定错误消息,我无法停止循环。可能有数百条这样的消息,出路是什么
    • 您的消息是否意味着在 OnException 覆盖方法中,我将日志记录包含在 Try Catch 中,这将处理该部分的异常,不会像我期望的那样重新调用 OnException 调用
    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多