Fixing autofac container creation

This commit is contained in:
Zoe Roux 2021-07-14 00:33:10 +02:00
parent 0c4cab48d7
commit ecb4101924

View File

@ -2,11 +2,12 @@ using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Autofac;
using Autofac.Extensions.DependencyInjection; using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace Kyoo namespace Kyoo
@ -31,7 +32,7 @@ namespace Kyoo
if (!File.Exists("./settings.json")) if (!File.Exists("./settings.json"))
File.Copy(Path.Join(AppDomain.CurrentDomain.BaseDirectory, "settings.json"), "settings.json"); File.Copy(Path.Join(AppDomain.CurrentDomain.BaseDirectory, "settings.json"), "settings.json");
IHostBuilder builder = CreateWebHostBuilder(args); IWebHostBuilder builder = CreateWebHostBuilder(args);
bool? debug = Environment.GetEnvironmentVariable("ENVIRONMENT")?.ToLowerInvariant() switch bool? debug = Environment.GetEnvironmentVariable("ENVIRONMENT")?.ToLowerInvariant() switch
{ {
@ -87,14 +88,18 @@ namespace Kyoo
/// </summary> /// </summary>
/// <param name="args">Command line parameters that can be handled by kestrel</param> /// <param name="args">Command line parameters that can be handled by kestrel</param>
/// <returns>A new web host instance</returns> /// <returns>A new web host instance</returns>
private static IHostBuilder CreateWebHostBuilder(string[] args) private static IWebHostBuilder CreateWebHostBuilder(string[] args)
{ {
IConfiguration configuration = SetupConfig(new ConfigurationBuilder(), args).Build(); IConfiguration configuration = SetupConfig(new ConfigurationBuilder(), args).Build();
return new WebHostBuilder()
return new HostBuilder() .ConfigureServices(x =>
.UseServiceProviderFactory(new AutofacServiceProviderFactory()) {
AutofacServiceProviderFactory factory = new();
x.Replace(ServiceDescriptor.Singleton<IServiceProviderFactory<ContainerBuilder>>(factory));
})
.UseContentRoot(AppDomain.CurrentDomain.BaseDirectory) .UseContentRoot(AppDomain.CurrentDomain.BaseDirectory)
.UseConfiguration(configuration)
.ConfigureAppConfiguration(x => SetupConfig(x, args)) .ConfigureAppConfiguration(x => SetupConfig(x, args))
.ConfigureLogging((context, builder) => .ConfigureLogging((context, builder) =>
{ {
@ -106,20 +111,12 @@ namespace Kyoo
.AddDebug() .AddDebug()
.AddEventSourceLogger(); .AddEventSourceLogger();
}) })
// .UseDefaultServiceProvider((context, options) =>
// {
// options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
// if (context.HostingEnvironment.IsDevelopment())
// StaticWebAssetsLoader.UseStaticWebAssets(context.HostingEnvironment, context.Configuration);
// })
.ConfigureServices(x => x.AddRouting()) .ConfigureServices(x => x.AddRouting())
.ConfigureWebHost(x => x
.UseKestrel(options => { options.AddServerHeader = false; }) .UseKestrel(options => { options.AddServerHeader = false; })
.UseIIS() .UseIIS()
.UseIISIntegration() .UseIISIntegration()
.UseUrls(configuration.GetValue<string>("basics:url")) .UseUrls(configuration.GetValue<string>("basics:url"))
.UseStartup<Startup>() .UseStartup<Startup>();
);
} }
} }
} }