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: