diff --git a/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs b/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs index 423b898cec..2238bd3b9b 100644 --- a/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs +++ b/src/Microsoft.AspNetCore.Hosting/WebHostBuilder.cs @@ -174,13 +174,6 @@ namespace Microsoft.AspNetCore.Hosting } } - var logger = hostingServiceProvider.GetRequiredService>(); - // Warn about duplicate HostingStartupAssemblies - foreach (var assemblyName in _options.GetFinalHostingStartupAssemblies().GroupBy(a => a, StringComparer.OrdinalIgnoreCase).Where(g => g.Count() > 1)) - { - logger.LogWarning($"The assembly {assemblyName} was specified multiple times. Hosting startup assemblies should only be specified once."); - } - AddApplicationServices(applicationServices, hostingServiceProvider); var host = new WebHost( @@ -193,6 +186,14 @@ namespace Microsoft.AspNetCore.Hosting { host.Initialize(); + var logger = host.Services.GetRequiredService>(); + + // Warn about duplicate HostingStartupAssemblies + foreach (var assemblyName in _options.GetFinalHostingStartupAssemblies().GroupBy(a => a, StringComparer.OrdinalIgnoreCase).Where(g => g.Count() > 1)) + { + logger.LogWarning($"The assembly {assemblyName} was specified multiple times. Hosting startup assemblies should only be specified once."); + } + return host; } catch @@ -208,7 +209,7 @@ namespace Microsoft.AspNetCore.Hosting var provider = collection.BuildServiceProvider(); var factory = provider.GetService>(); - if (factory != null) + if (factory != null && !(factory is DefaultServiceProviderFactory)) { using (provider) {