在我的 MVC4 应用程序中,我覆盖了 global.asax.csApplication_Error(object sender, EventArgs e)
我可以在哪里提取exception
, statusCode
and requestedUrl
(用于处理 404)。这将被发送到我的控制器,并且 404 与 5xx 的错误页面会有所不同(这些会获得堆栈跟踪)。我不知道如何使用以下方法将相同的信息添加到我的错误操作中UseErrorHandler()
。我在 ASP.NET Core 中使用的方法是否正确?
2016 年 8 月 2 日 - 1.0.0 更新
启动.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);
}
}
}
项目.json
...
"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0",
...
}
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)