mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-21 08:21:53 +02:00
Make kestrel limits configurable (#520)
* Allow kestrel options to be overriden with values of config files and environment variables (see https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#kestrel-options) * Make appsettings.json optional * Move changes to AspNetCoreSelfHost.Framework files. * Implement ConfigureKestrelServerOptions for .NET Standard 1.3.
This commit is contained in:
@@ -3,6 +3,8 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
namespace WireMock.Owin
|
namespace WireMock.Owin
|
||||||
{
|
{
|
||||||
@@ -34,5 +36,24 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static class IWebHostBuilderExtensions
|
||||||
|
{
|
||||||
|
internal static IWebHostBuilder ConfigureAppConfigurationUsingEnvironmentVariables(this IWebHostBuilder builder)
|
||||||
|
{
|
||||||
|
return builder.ConfigureAppConfiguration(config =>
|
||||||
|
{
|
||||||
|
config.AddEnvironmentVariables();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static IWebHostBuilder ConfigureKestrelServerOptions(this IWebHostBuilder builder)
|
||||||
|
{
|
||||||
|
return builder.ConfigureServices((context, services) =>
|
||||||
|
{
|
||||||
|
services.Configure<KestrelServerOptions>(context.Configuration.GetSection("Kestrel"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -4,6 +4,8 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Server.Kestrel;
|
using Microsoft.AspNetCore.Server.Kestrel;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using WireMock.HttpsCertificate;
|
using WireMock.HttpsCertificate;
|
||||||
|
|
||||||
namespace WireMock.Owin
|
namespace WireMock.Owin
|
||||||
@@ -26,5 +28,22 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static class IWebHostBuilderExtensions
|
||||||
|
{
|
||||||
|
internal static IWebHostBuilder ConfigureAppConfigurationUsingEnvironmentVariables(this IWebHostBuilder builder) => builder;
|
||||||
|
|
||||||
|
internal static IWebHostBuilder ConfigureKestrelServerOptions(this IWebHostBuilder builder)
|
||||||
|
{
|
||||||
|
var configuration = new ConfigurationBuilder()
|
||||||
|
.AddEnvironmentVariables()
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
return builder.ConfigureServices(services =>
|
||||||
|
{
|
||||||
|
services.Configure<KestrelServerOptions>(configuration.GetSection("Kestrel"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -58,6 +58,7 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
|
|
||||||
_host = builder
|
_host = builder
|
||||||
|
.ConfigureAppConfigurationUsingEnvironmentVariables()
|
||||||
.ConfigureServices(services =>
|
.ConfigureServices(services =>
|
||||||
{
|
{
|
||||||
services.AddSingleton(_options);
|
services.AddSingleton(_options);
|
||||||
@@ -81,6 +82,7 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
SetHttpsAndUrls(options, _urlOptions.GetDetails());
|
SetHttpsAndUrls(options, _urlOptions.GetDetails());
|
||||||
})
|
})
|
||||||
|
.ConfigureKestrelServerOptions()
|
||||||
|
|
||||||
#if NETSTANDARD1_3
|
#if NETSTANDARD1_3
|
||||||
.UseUrls(_urlOptions.GetDetails().Select(u => u.Url).ToArray())
|
.UseUrls(_urlOptions.GetDetails().Select(u => u.Url).ToArray())
|
||||||
|
|||||||
Reference in New Issue
Block a user