diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/WebHostBuilderKestrelExtensions.cs b/src/Microsoft.AspNetCore.Server.Kestrel/WebHostBuilderKestrelExtensions.cs index edebf2a94b..44c733b776 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/WebHostBuilderKestrelExtensions.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/WebHostBuilderKestrelExtensions.cs @@ -23,7 +23,11 @@ namespace Microsoft.AspNetCore.Hosting /// public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder) { - return hostBuilder.ConfigureServices(services => services.AddSingleton()); + return hostBuilder.ConfigureServices(services => + { + services.AddTransient, KestrelServerOptionsSetup>(); + services.AddSingleton(); + }); } /// @@ -42,7 +46,6 @@ namespace Microsoft.AspNetCore.Hosting { hostBuilder.ConfigureServices(services => { - services.AddTransient, KestrelServerOptionsSetup>(); services.Configure(options); }); diff --git a/test/Microsoft.AspNetCore.Server.KestrelTests/WebHostBuilderKestrelExtensionsTests.cs b/test/Microsoft.AspNetCore.Server.KestrelTests/WebHostBuilderKestrelExtensionsTests.cs new file mode 100644 index 0000000000..7253c4a465 --- /dev/null +++ b/test/Microsoft.AspNetCore.Server.KestrelTests/WebHostBuilderKestrelExtensionsTests.cs @@ -0,0 +1,35 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Server.Kestrel; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace Microsoft.AspNetCore.Server.KestrelTests +{ + public class WebHostBuilderKestrelExtensionsTests + { + [Fact] + public void ApplicationServicesNotNullAfterUseKestrelWithoutOptions() + { + // Arrange + var hostBuilder = new WebHostBuilder() + .UseKestrel() + .Configure(app => { }); + + hostBuilder.ConfigureServices(services => + { + services.Configure(options => + { + // Assert + Assert.NotNull(options.ApplicationServices); + }); + }); + + // Act + var host = hostBuilder.Build(); + } + } +}