HTTP: Kestrel и типы BadHttpRequestException помечены как устаревшие и замененные

Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException и Microsoft.AspNetCore.Server.IIS.BadHttpRequestException были помечены как устаревшие и изменены, чтобы быть производными от Microsoft.AspNetCore.Http.BadHttpRequestException. Серверы Kestrel и IIS по-прежнему выдают старые типы исключений для обеспечения обратной совместимости. Устаревшие типы будут удалены в будущем выпуске.

Обсуждение этого вопроса см. на странице dotnet/aspnetcore#20614.

Представленные версии

5.0, предварительная версия 4

Старое поведение

Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException и Microsoft.AspNetCore.Server.IIS.BadHttpRequestException являются производными от System.IO.IOException.

Новое поведение

Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException и Microsoft.AspNetCore.Server.IIS.BadHttpRequestException являются устаревшими. Типы являются производными от Microsoft.AspNetCore.Http.BadHttpRequestException, который является производным от System.IO.IOException.

Причина изменения

Изменение было внесено в следующих целях:

  • Консолидация повторяющихся типов.
  • Унификация поведения различных серверных реализаций.

Теперь приложение может перехватывать базовое исключение Microsoft.AspNetCore.Http.BadHttpRequestException при использовании Kestrel или IIS.

Замените Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException и Microsoft.AspNetCore.Server.IIS.BadHttpRequestException на Microsoft.AspNetCore.Http.BadHttpRequestException.

Затронутые API