Я хотел бы иметь 1 страницу ошибки, которая в зависимости от строки запроса отображает пользователю несколько другое сообщение об ошибке.Смутно с обработкой ошибок в ASP.net 5 MVC 6
Я заметил следующий код в файле Startup.cs при создании нового проекта asp.net 5.
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
Я получил это, чтобы отобразить правильную страницу ошибки при возникновении исключения. Моя проблема заключается в том, что она, похоже, только ломает ошибки, которые не были обработаны в моем приложении, то есть всегда с кодом состояния 500
. Это верно?
Для обработки 404
ошибок Я использую следующий код:
app.UseStatusCodePagesWithReExecute("/Error/{0}");
С моим контроллером реализованы в виде:
[HttpGet("{statusCode}")]
public IActionResult Error(int statusCode)
{
return View(statusCode);
}
Это, кажется, поймать 404
ошибок и отображает правильный код статуса.
Если я обновить свой код выше, если заявление использовать те же действия, например:
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error/{0}");
}
код состояния возвращается всегда 0.
Кроме того, что произойдет, когда 400
, 403
или любое другое происходит? Будут ли они пойманы? Если да, то в какой момент их поймают?
Как вы можете сказать, я очень смущен и хотел бы, чтобы кто-то предоставил мне пример, где обрабатываются все разные коды статуса.
Wont поймать ошибку globaly в Application_Error события внутри global.asax помощи? http://stackoverflow.com/questions/16884074/asp-net-mvc-application-error-handler-in-global-asax –
Это похоже на asp.net MVC5? –
Можете ли вы отправить код 'UseExceptionHandler'? – Mairaj