C# ASP.Net Web API异常筛选器,记录到数据库失败

C# ASP.Net Web API异常筛选器,记录到数据库失败,c#,asp.net,.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,.net,Asp.net Mvc,Asp.net Web Api,在我们的ASP.NETWebAPI应用程序中,我们计划通过全局异常过滤器属性处理异常,如下所述 我们计划使用NLog将异常记录到多介质(如数据库)文件中。让我困惑的是一个像数据库这样的媒体,如果我们登录时出现数据库关闭、连接超时和多个其他异常,那么它将进入无限循环,因为它将不断尝试记录异常,并不断返回异常 是否有一种机制来限制它1次或2次尝试,然后以静默方式失败,而不是进入无限循环、任何指针 我们计划在多种介质中记录异常,如 数据库,使用NLog的文件。让我困惑的是像数据库这样的媒体, 如果我们

在我们的ASP.NETWebAPI应用程序中,我们计划通过全局异常过滤器属性处理异常,如下所述

我们计划使用NLog将异常记录到多介质(如数据库)文件中。让我困惑的是一个像数据库这样的媒体,如果我们登录时出现数据库关闭、连接超时和多个其他异常,那么它将进入无限循环,因为它将不断尝试记录异常,并不断返回异常

是否有一种机制来限制它1次或2次尝试,然后以静默方式失败,而不是进入无限循环、任何指针

我们计划在多种介质中记录异常,如 数据库,使用NLog的文件。让我困惑的是像数据库这样的媒体, 如果我们登录时出现数据库关闭之类的异常,连接 超时和多个其他超时,然后它将进入无限循环,因为 将继续尝试记录异常,该异常将继续返回 例外


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

如果我使用异常过滤器,我是否有使用try-catch块的规定,因为我正在重写一个在异常时自动触发的OneException方法,除非我开始检查特定的错误消息,否则我无法停止该循环。可能有数百条这样的消息,您的消息意味着在OneException覆盖方法中,我将日志记录包含在一个Try Catch中,这将处理该部分的异常,不会像我预期的那样重新调用OneException调用