aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Program.cs
diff options
context:
space:
mode:
authorPatrick Barron <barronpm@gmail.com>2023-01-11 22:07:41 -0500
committerPatrick Barron <barronpm@gmail.com>2023-01-11 22:07:41 -0500
commit7b17799b013fd8bc76a51b60d670a83901607e86 (patch)
tree9a0f264e6b600eb27448417964ded973490c0cd8 /Jellyfin.Server/Program.cs
parent81c8890b6d0f8b84dd52264d6c43e04dc130c79d (diff)
Migrate from IWebHost to IHost
Diffstat (limited to 'Jellyfin.Server/Program.cs')
-rw-r--r--Jellyfin.Server/Program.cs37
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>