Исходя из предложения @ Фэй-хана и этой глобальной ссылки для обработки ошибок , я могу регистрировать исключения глобально в моей производственной среде. В файле Startup.cs я убедился, что у меня настроен ExceptionHandler
, когда мое приложение работает в производственном режиме, например
Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseElmah();
//Other configurations
}
. возникла исключительная ситуация, она вызовет метод действия ошибки контроллера дома
контроллер дома
using Microsoft.AspNetCore.Diagnostics;
public IActionResult Error()
{
var exceptionFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
if (exceptionFeature != null)
{
// Get the exception that occurred
Exception exceptionThatOccurred = exceptionFeature.Error;
//log exception using ElmahCore
HttpContext.RiseError(exceptionThatOccurred);
}
//Return custom error page (I have modified the default html of
//Shared>Error.cshtml view and showed my custom error page)
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
Теперь все мои исключения регистрируются, и в ответ я также показываю настроенную страницу ошибки исключение.