Breaking Change aspnetcore 3 preview 7 BackgroundService

Meine funktionierende im IIS gehostete Studios Web Plattform für Konferenz Videos und Lerninhalte, crasht nach Update des Windows Servers auf die aspnet core runtime& hosting Bundle preview 7.

Der Fehler tritt in einem BackgroundService auf, beim Zugriff auf den Pfad, der in startup.cs per Env.ContentRootpath gesichert wird.

   1:  protected override Task ExecuteAsync(CancellationToken stoppingToken)
   2:  {
   3:    var path = Path.Combine(AppDomain.CurrentDomain.GetData("WWWBaseDirectory").ToString(),
   4:                  "wwwroot\\videos"); ;

Ganz offensichtlich ist der Background Service bereits “ready” bevor Configure angesprungen wird und so die Pipeline konfiguration ausgeführt wurde. Dies wurde in Preview 7 beschlossen und als sogenannter breaking change implementiert. Dokumentation dazu habe ich nicht gefunden. Die Codezeile services.AddHostedService<VideosWatcher>(); muss aus dem ConfigureServices entfernt werden und später ausgeführt werden. Die Lösung ist im Einstiegspunkt Program.cs den Service nach UseStartup auszuführen.

   1:   public static IHostBuilder CreateHostBuilder(string[] args) =>
   2:        Host.CreateDefaultBuilder(args)
   3:         .ConfigureWebHostDefaults(webBuilder =>
   4:             {
   5:                    webBuilder.UseStartup<Startup>();
   6:            })
   7:        .ConfigureServices(services =>
   8:           {
   9:              services.AddHostedService<VideosWatcher>();
  10:          });
  11:      
  12:          
Kommentare sind geschlossen