diff options
| author | Patrick Barron <barronpm@gmail.com> | 2023-01-11 22:07:41 -0500 |
|---|---|---|
| committer | Patrick Barron <barronpm@gmail.com> | 2023-01-11 22:07:41 -0500 |
| commit | 7b17799b013fd8bc76a51b60d670a83901607e86 (patch) | |
| tree | 9a0f264e6b600eb27448417964ded973490c0cd8 /Jellyfin.Server/Program.cs | |
| parent | 81c8890b6d0f8b84dd52264d6c43e04dc130c79d (diff) | |
Migrate from IWebHost to IHost
Diffstat (limited to 'Jellyfin.Server/Program.cs')
| -rw-r--r-- | Jellyfin.Server/Program.cs | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index 7052f4d2b..4725005ae 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -6,7 +6,6 @@ using System.IO; using System.Linq; using System.Net; using System.Reflection; -using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Text; using System.Threading; @@ -21,7 +20,6 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; @@ -186,20 +184,26 @@ namespace Jellyfin.Server try { - var serviceCollection = new ServiceCollection(); - appHost.Init(serviceCollection); - - var webHost = new WebHostBuilder().ConfigureWebHostBuilder(appHost, serviceCollection, options, startupConfig, appPaths).Build(); + var host = Host.CreateDefaultBuilder() + .ConfigureServices(services => + { + // NOTE: Called first to ensure app host configuration is fully initialized + appHost.Init(services); + }) + .ConfigureWebHostDefaults(webHostBuilder => webHostBuilder.ConfigureWebHostBuilder(appHost, startupConfig, appPaths)) + .ConfigureAppConfiguration(config => config.ConfigureAppConfiguration(options, appPaths, startupConfig)) + .UseSerilog() + .Build(); - // Re-use the web host service provider in the app host since ASP.NET doesn't allow a custom service collection. - appHost.ServiceProvider = webHost.Services; + // Re-use the host service provider in the app host since ASP.NET doesn't allow a custom service collection. + appHost.ServiceProvider = host.Services; await appHost.InitializeServices().ConfigureAwait(false); Migrations.MigrationRunner.Run(appHost, _loggerFactory); try { - await webHost.StartAsync(_tokenSource.Token).ConfigureAwait(false); + await host.StartAsync(_tokenSource.Token).ConfigureAwait(false); if (!OperatingSystem.IsWindows() && startupConfig.UseUnixSocket()) { @@ -284,16 +288,12 @@ namespace Jellyfin.Server /// </summary> /// <param name="builder">The builder to configure.</param> /// <param name="appHost">The application host.</param> - /// <param name="serviceCollection">The application service collection.</param> - /// <param name="commandLineOpts">The command line options passed to the application.</param> /// <param name="startupConfig">The application configuration.</param> /// <param name="appPaths">The application paths.</param> /// <returns>The configured web host builder.</returns> public static IWebHostBuilder ConfigureWebHostBuilder( this IWebHostBuilder builder, - ApplicationHost appHost, - IServiceCollection serviceCollection, - StartupOptions commandLineOpts, + CoreAppHost appHost, IConfiguration startupConfig, IApplicationPaths appPaths) { @@ -349,14 +349,7 @@ namespace Jellyfin.Server _logger.LogInformation("Kestrel listening to unix socket {SocketPath}", socketPath); } }) - .ConfigureAppConfiguration(config => config.ConfigureAppConfiguration(commandLineOpts, appPaths, startupConfig)) - .UseSerilog() - .ConfigureServices(services => - { - // Merge the external ServiceCollection into ASP.NET DI - services.Add(serviceCollection); - }) - .UseStartup<Startup>(); + .UseStartup(_ => new Startup(appHost)); } /// <summary> |
