app.UseErrorHandler() 可以访问错误详细信息吗? [英] Can app.UseErrorHandler() access error details?

查看:22
本文介绍了app.UseErrorHandler() 可以访问错误详细信息吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 MVC4 应用程序中,我有一个 global.asax.cs 覆盖 Application_Error(object sender, EventArgs e) 在那里我可以提取 exception, statusCoderequestedUrl(用于处理 404).这将被发送到我的控制器,并且 404s 与 5xx 的错误页面会有所不同(这些会获得堆栈跟踪).我看不到如何使用 UseErrorHandler() 为我的错误操作获取相同的信息.我在 ASP.NET Core 中使用了正确的方法吗?

In my MVC4 app I had a global.asax.cs override of Application_Error(object sender, EventArgs e) where I could extract the exception, statusCode and requestedUrl (for handling 404). That would get sent to my controller and the error page would be different for 404s vs 5xx (these get a stack trace). I don't see how to get this same info to my Error action using UseErrorHandler(). Am I using the right approach in ASP.NET Core?

推荐答案

8月2016 年 2 月 2 日 - 1.0.0 更新

Startup.cs

using Microsoft.AspNet.Builder;

namespace NS
{
    public class Startup
    {
         ...
         public virtual void Configure(IApplicationBuilder app)
         {
             ...
             app.UseExceptionHandler("/Home/Error");
             ...
         }
     }
}

HomeController.cs

using Microsoft.AspNet.Diagnostics;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.Logging;

namespace NS.Controllers
{
    public class HomeController : Controller
    {
        static ILogger _logger;
        public HomeController(ILoggerFactory factory)
        {
            if (_logger == null)
                _logger = factory.Create("Unhandled Error");
        }

        public IActionResult Error()
        {
            var feature = HttpContext.Features.Get<IExceptionHandlerFeature>();
            var error = feature?.Error;
            _logger.LogError("Oops!", error);
            return View("~/Views/Shared/Error.cshtml", error);
        }
    }
}

project.json

...
"dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0",
     ...
}
...

这篇关于app.UseErrorHandler() 可以访问错误详细信息吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆