加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net核心 – Asp.net核心错误管理

发布时间:2020-12-15 23:35:13 所属栏目:asp.Net 来源:网络整理
导读:在以前的 Asp.net版本中,我用于创建从其他控制器继承的BaseController,并且拦截一般错误,并使用简单的日志记录方法记录每个错误并传递ExceptionContext filterContext. 我应该在Asp.net 5中做同样的事情吗? 我在Startup.cs中看到,有一个if / else语句基本上
在以前的 Asp.net版本中,我用于创建从其他控制器继承的BaseController,并且拦截一般错误,并使用简单的日志记录方法记录每个错误并传递ExceptionContext filterContext.

我应该在Asp.net 5中做同样的事情吗?
我在Startup.cs中看到,有一个if / else语句基本上分开了调试/生存条件,用行

app.UseErrorHandler("/Home/Error");

用于生产应用.
我应该如何挂钩进程并记录错误?

谢谢

解决方法

ASP.NET 5中的处理和记录错误涉及到一些元素.

为了处理生产场景中的错误并显示错误页面,应用程序的方法可以是.UseExceptionHandler(). ASP.NET GitHub组织的诊断回购包括一个显示此功能的sample.对于要查看完整堆栈跟踪和其他诊断信息的开发时场景,请使用app.UseDeveloperExceptionPage(),如this sample所示.

如果应用程序正在使用MVC 6,那么就有一种处理错误的MVC特定方式,就像在早期版本的MVC中一样.在MVC 6中,过滤器(或Controller本身也是一个过滤器)可以处理/覆盖OnActionExecuted方法,并检查ActionExecutedContext参数以尝试处理错误.

在日志记录方面,ASP.NET 5中有一个新的日志记录基础设施,向任何注册的ILogger报告了大量信息. Visual Studio 2015中的默认项目模板会将一些记录器记录错误(和其他数据)到控制台和VS调试输出窗口.但是,当在IIS或IIS Express中运行时,没有控制台窗口(但!).但是,如果您从命令行运行(使用dnx web),则会看到错误.或者,当然,您可以注册一个写入日志文件或数据库的其他记录器,并在那里查看日志.

在网络应用程序中注册一个自定义的ILogger:

>编写一个实现ILogger接口的记录器.请参阅DNX implementations如何做到这一点.>将ILoggerFactory类型的参数添加到应用程序的启动类的Configure方法中.>在配置方法中调用loggerFactory.AddProvider(< some provider>)并传入记录器的一个实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读