gpt4 book ai didi

asp.net-core - 使用 BaseController 在 ASP.NET Core 中进行错误管理

转载 作者:行者123 更新时间:2023-12-03 22:16:34 26 4
gpt4 key购买 nike

在以前的 ASP.NET 版本中,我被用来创建一个从其他 Controller 继承的 BaseController 并在那里拦截一般错误并使用简单的日志记录方法记录每个错误并传递 ExceptionContext 过滤器上下文 .
我应该在 ASP.NET 5 中做同样的事情吗?
我在文件 Startup.cs 中看到有一个 if/else 语句,它基本上将调试/实时条件分开,行

app.UseErrorHandler("/Home/Error");
用于生产应用程序。
我应该如何 Hook 并记录错误?

最佳答案

处理和记录 ASP.NET 5 中的错误涉及一些元素。
要处理生产场景中的错误并显示错误页面,app.UseExceptionHandler()方法是要走的路。 ASP.NET GitHub 组织上的诊断存储库包括 a sample这表明了这一点。对于想要查看完整堆栈跟踪和其他诊断信息的开发时场景,请使用 app.UseDeveloperExceptionPage()this sample 中所见.
如果应用程序使用 ASP.NET MVC 6,则有一种特定于 MVC 的错误处理方式,就像早期版本的 ASP.NET MVC 一样。在 ASP.NET MVC 6 中,过滤器(或 Controller 本身,也是过滤器)可以处理/覆盖 OnActionExecuted方法和检查 ActionExecutedContext尝试处理错误的参数。
谈到日志记录,ASP.NET 5 中有一个新的日志记录基础结构,可以向任何注册的 ILogger 报告大量信息。 . Visual Studio 2015 中的默认项目模板注册了一些将错误(和其他数据)记录到控制台和 Visual Studio 调试输出窗口的记录器。但是,在 IIS 或 IIS Express 中运行时,没有控制台窗口(还没有!)。但是,如果您从命令行运行(使用 dnx web ),那么您将看到错误。或者,当然,您可以注册一个不同的记录器来写入日志文件或数据库并查看那里的日志。
注册自定义 ILogger在网络应用程序中:

  • 编写一个实现 ILogger 的记录器界面。见 DNX implementations如何做到这一点。
  • 添加类型为 ILoggerFactory 的参数到您的应用程序的 Startup类(class)Configure方法。
  • Configure方法调用 loggerFactory.AddProvider(<some provider>)并传入您的记录器实例。
  • 关于asp.net-core - 使用 BaseController 在 ASP.NET Core 中进行错误管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957536/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com