Oprogramowanie pośredniczące: strona błędu bazy danych oznaczona jako przestarzała

Element DatabaseErrorPageMiddleware i skojarzone z nią metody rozszerzenia zostały oznaczone jako przestarzałe w ASP.NET Core 5.0. Metody oprogramowania pośredniczącego i rozszerzenia zostaną usunięte w ASP.NET Core 6.0. Zamiast tego funkcje będą udostępniane przez DatabaseDeveloperPageExceptionFilter metody rozszerzeń i jej rozszerzenia.

Aby zapoznać się z dyskusją, zobacz problem z usługą GitHub pod adresem dotnet/aspnetcore#24987.

Wprowadzona wersja

5.0 RC 1

Stare zachowanie

DatabaseErrorPageMiddleware i skojarzone z nią metody rozszerzenia nie były przestarzałe.

Nowe zachowanie

DatabaseErrorPageMiddleware i skojarzone z nią metody rozszerzenia są przestarzałe.

Przyczyna wprowadzenia zmiany

DatabaseErrorPageMiddlewarezostał zmigrowany do rozszerzalnego interfejsu API dla strony wyjątku dewelopera. Aby uzyskać więcej informacji na temat rozszerzalnego interfejsu API, zobacz problem z usługą GitHub dotnet/aspnetcore#8536.

Zakończ poniższe kroki:

  1. Przestań używać DatabaseErrorPageMiddleware w projekcie. Na przykład usuń wywołanie UseDatabaseErrorPage metody z klasy Startup.Configure:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDatabaseErrorPage();
        }
    }
    
  2. Dodaj stronę wyjątku dla deweloperów do projektu. Na przykład wywołaj metodę UseDeveloperExceptionPage w pliku Startup.Configure:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    }
    
  3. Dodaj pakiet NuGet Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore do pliku projektu.

  4. Dodaj filtr wyjątku strony dewelopera bazy danych do kolekcji usług. Na przykład wywołaj metodę AddDatabaseDeveloperPageExceptionFilter w pliku Startup.ConfigureServices:

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

Dotyczy interfejsów API