Веб-приложение C# .NET8: как я могу направить «плохие» URL-адреса на главную страницу?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Веб-приложение C# .NET8: как я могу направить «плохие» URL-адреса на главную страницу?

Сообщение Anonymous »

Мы объявили устаревшим старый веб-сайт ASP.NET, написанный на VB.NET. Вместо него мы заменили простую «баннерную страницу», написанную на C# в .NET 8.
Новое приложение
  • главная страница и
  • страницы для добавления, обновления и удаления «запросов функций».
Оно написано на C# с использованием .NET 8. Оно размещено на IIS/Windows Server 2019.
Исходное приложение имело много разных URL-адресов. Я хотел бы гарантировать, что пользователи всегда перенаправляются на новую «главную» страницу, независимо от того, какой «старый» URL-адрес они пробуют.
Я надеялся использовать IIS «configure» ошибка"; но это, похоже, не работает (я пробовал много вариантов).
Поэтому вместо этого я написал компонент промежуточного программного обеспечения для перенаправления на HTTP 404. Кажется, он работает (я успешно перенаправляюсь на главную страницу, независимо от URL). Но я получаю следующую ошибку:

При выполнении запроса произошло необработанное исключение. System.InvalidOperationException: заголовки ответа невозможно изменить, поскольку ответ уже начался.

Код — RedirectPageNotFound.cs:

Код: Выделить всё

public class RedirectPageNotFound
{
private readonly RequestDelegate _next;
private readonly ILogger _logger;

public RedirectPageNotFound(RequestDelegate next, ILogger logger)
{
_next = next;
_logger = logger;
}

public async Task Invoke(HttpContext context)
{
await _next(context);

if (context.Response.StatusCode == 404)
{
_logger.LogInformation($"Handling 404 error for request {context.Request.Path}");
context.Response.Redirect("/");
}
else
{
await _next(context);
}
}
}

Код: Выделить всё

Program.cs
:

Код: Выделить всё

app.MapRazorPages();
app.MapControllers();
app.UseMiddleware();
Q1. Как исправить исключение System.InvalidOperationException?
Q2. Есть ли «лучший» способ перенаправления «плохие URL-адреса» на мою «главную страницу», чтобы она вообще не выполняла перенаправление HTTP?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -main-page
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Веб-приложение C# .NET8: как я могу направить «плохие» URL-адреса на главную страницу?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление на (главную страницу) страница бритвы без изменения адреса
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление на (главную страницу) страница бритвы без изменения адреса
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Приложение UWP. Перейдите на главную страницу и очистите рамки.
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • UWP xamarin формирует главную страницу, которая не инициализируется должным образом
    Anonymous » » в форуме C#
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»