在我的 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/