我应该在Asp.net 5中做同样的事情吗?
我在Startup.cs中看到,有一个if / else语句基本上分开了调试/生存条件,用行
app.UseErrorHandler("/Home/Error");
用于生产应用.
我应该如何挂钩进程并记录错误?
谢谢
解决方法
为了处理生产场景中的错误并显示错误页面,应用程序的方法可以是.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接口的记录器.请参阅DNX implementations如何做到这一点.>将ILoggerFactory类型的参数添加到应用程序的启动类的Configure方法中.>在配置方法中调用loggerFactory.AddProvider(< some provider>)并传入记录器的一个实例.