У меня есть приложение ASP. NET Core 2.1 MVC, и я пытаюсь вернуть отдельное представление html при возникновении исключения. Причина этого в том, что в случае ошибок мы не хотим, чтобы Google регистрировал перенаправления на страницу ошибок для нашего SEO (я пропустил настройки разработки, чтобы прояснить ситуацию).
Наш стартап содержал this:
app.UseExceptionHandler("/Error/500"); // this caused a redirect because some of our middleware.
app.UseStatusCodePagesWithReExecute("/error/{0}");
Но мы хотим предотвратить перенаправление, поэтому нам нужно изменить UseExceptionHandler. Я попытался использовать ответ из этого вопроса , как показано ниже:
app.UseExceptionHandler(
options =>
{
options.Run(
async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.ContentType = "text/html";
await context.Response.WriteAsync("sumtin wrong").ConfigureAwait(false);
});
});
Но это дает очень уродливую страницу без какого-либо оформления. Другое решение, которое мы пытались использовать, - это создание промежуточного программного обеспечения для обработки ошибок, но там мы сталкиваемся с той же проблемой, когда мы не можем добавить представление.
Как я могу вернуть стилизованное представление в случае исключение, без перенаправления пользователя?
РЕДАКТИРОВАТЬ: UseExceptionHandler не вызывает перенаправления, это было вызвано ошибкой в некоторых из наших промежуточных программ.