ПО промежуточного слоя: страница ошибок базы данных, помеченная как устаревшая

DatabaseErrorPageMiddleware и связанные с ним методы расширения были помечены как устаревшие в ASP.NET Core 5.0. ПО промежуточного слоя и методы расширения будут удалены в ASP.NET Core 6.0. Эти функции вместо этого будут предоставляться DatabaseDeveloperPageExceptionFilter и методами расширения.

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

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

5.0 RC 1

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

DatabaseErrorPageMiddleware и связанные с ним методы расширения не устарели.

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

DatabaseErrorPageMiddleware и связанные с ним методы расширения устарели.

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

DatabaseErrorPageMiddleware был перенесен в расширяемый API для страницы со сведениями об исключении для разработчика. Дополнительные сведения об расширяемых API см. на странице GitHub dotnet/aspnetcore#8536.

Выполните следующие действия:

  1. Не используйте DatabaseErrorPageMiddleware в проектах. Например, удалите вызов метода UseDatabaseErrorPage из Startup.Configure.

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDatabaseErrorPage();
        }
    }
    
  2. Добавьте в проект страницу со сведениями об исключении для разработчика. Например, вызовите метод UseDeveloperExceptionPage в Startup.Configure.

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    }
    
  3. Добавьте пакет NuGet Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore в файл проекта.

  4. Добавьте фильтр исключений страницы со сведениями об исключении для разработчика базы данных в коллекцию служб. Например, вызовите метод AddDatabaseDeveloperPageExceptionFilter в Startup.ConfigureServices.

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDatabaseDeveloperPageExceptionFilter();
    }
    

Затронутые API