app.UseErrorHandler()可以访问错误详细信息吗?

Kei*_*ill 8 asp.net-core-mvc asp.net-core

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

agu*_*ars 14

2016年8月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");
             ...
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

project.json

...
"dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0",
     ...
}
...
Run Code Online (Sandbox Code Playgroud)