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

标签 asp.net-core asp.net-core-mvc

在我的 MVC4 应用程序中,我覆盖了 Application_Error(object sender, EventArgs e) 的 global.asax.cs ,我可以在其中提取异常statusCode requestedUrl (用于处理 404)。这将被发送到我的 Controller ,并且 404 与 5xx 的错误页面会有所不同(这些会获得堆栈跟踪)。我不知道如何使用 UseErrorHandler() 将相同的信息获取到我的错误操作。我在 ASP.NET Core 中使用的方法正确吗?

最佳答案

八月2016 年 02 日 - 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",
     ...
}
...

关于asp.net-core - app.UseErrorHandler() 可以访问错误详细信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385246/

相关文章:

asp.net - 使类库与 DNX Core 5 兼容

c# - 什么时候应该使用 HttpContext.User.Identity.IsAuthenticated 和 SignInManager.IsSignedIn(HttpContext.User)?

asp.net - MVC6 - 处理未处理的异常,但仍然有错误页面重定向

c# - Serilog 结构化数据 pretty-print ?

c# - .net 核心 2.2 EF : SaveChangesAsync() setting unrelated columns to null

c# - 如何获取 OpenIdConnectOptions StateDataFormat

asp.net-core - 使用 IResultFilter 包装 ASP.NET Core WebAPI 方法的结果

c# - 是否可以在多个中间件中使用同一个路由器?

c# - ASP.NET Core 无法使用 RazorViewEngine 按路径找到 cshtml 文件

docker - 未应用 ASPNETCORE_URLS(在 docker 容器中部署)