public Task StartAsync() { _host = new WebHostBuilder() .Configure(appBuilder => { appBuilder.UseMiddleware <GlobalExceptionMiddleware>(_options); _options.PreWireMockMiddlewareInit?.Invoke(appBuilder); appBuilder.UseMiddleware <WireMockMiddleware>(_options); _options.PostWireMockMiddlewareInit?.Invoke(appBuilder); }) .UseKestrel(options => { #if NETSTANDARD1_3 if (_urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { options.UseHttps(PublicCertificateHelper.GetX509Certificate2()); } #else // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?tabs=aspnetcore2x foreach (string url in _urls.Where(u => u.StartsWith("http://", StringComparison.OrdinalIgnoreCase))) { PortUtil.TryExtractProtocolAndPort(url, out string host, out int port); options.Listen(System.Net.IPAddress.Loopback, port); } foreach (string url in _urls.Where(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { PortUtil.TryExtractProtocolAndPort(url, out string host, out int port); options.Listen(System.Net.IPAddress.Loopback, port, listenOptions => { listenOptions.UseHttps(PublicCertificateHelper.GetX509Certificate2()); }); } #endif }) #if NETSTANDARD1_3 .UseUrls(_urls) #endif .Build(); IsStarted = true; #if NETSTANDARD1_3 Console.WriteLine("WireMock.Net server using netstandard1.3"); return(Task.Run(() => { _host.Run(_cts.Token); }, _cts.Token)); #else System.Console.WriteLine("WireMock.Net server using netstandard2.0"); return(Task.Run(() => { _host.Run(); }, _cts.Token)); #endif }
public Task StartAsync() { _host = new WebHostBuilder() .ConfigureServices(services => { services.AddSingleton(_options.FileSystemHandler); services.AddSingleton(_options); services.AddSingleton <IMappingMatcher, MappingMatcher>(); services.AddSingleton <IOwinRequestMapper, OwinRequestMapper>(); services.AddSingleton <IOwinResponseMapper, OwinResponseMapper>(); }) .Configure(appBuilder => { appBuilder.UseMiddleware <GlobalExceptionMiddleware>(); _options.PreWireMockMiddlewareInit?.Invoke(appBuilder); appBuilder.UseMiddleware <WireMockMiddleware>(); _options.PostWireMockMiddlewareInit?.Invoke(appBuilder); }) .UseKestrel(options => { #if NETSTANDARD1_3 if (_urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { options.UseHttps(PublicCertificateHelper.GetX509Certificate2()); } #else // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?tabs=aspnetcore2x foreach (string url in _urls.Where(u => u.StartsWith("http://", StringComparison.OrdinalIgnoreCase))) { PortUtils.TryExtract(url, out string protocol, out string host, out int port); options.Listen(System.Net.IPAddress.Any, port); } foreach (string url in _urls.Where(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { PortUtils.TryExtract(url, out string protocol, out string host, out int port); options.Listen(System.Net.IPAddress.Any, port, listenOptions => { listenOptions.UseHttps(PublicCertificateHelper.GetX509Certificate2()); }); } #endif }) #if NETSTANDARD1_3 .UseUrls(_urls) #endif .Build(); return(RunHost(_cts.Token)); }
private static void SetHttpsAndUrls(KestrelServerOptions options, IWireMockMiddlewareOptions wireMockMiddlewareOptions, IEnumerable <HostUrlDetails> urlDetails) { foreach (var urlDetail in urlDetails) { if (urlDetail.IsHttps) { if (wireMockMiddlewareOptions.CustomCertificateDefined) { options.UseHttps(CertificateLoader.LoadCertificate( wireMockMiddlewareOptions.X509StoreName, wireMockMiddlewareOptions.X509StoreLocation, wireMockMiddlewareOptions.X509ThumbprintOrSubjectName, wireMockMiddlewareOptions.X509CertificateFilePath, wireMockMiddlewareOptions.X509CertificatePassword, urlDetail.Host) ); } else { options.UseHttps(PublicCertificateHelper.GetX509Certificate2()); } } } }
public Task StartAsync() { var builder = new WebHostBuilder(); // Workaround for https://github.com/WireMock-Net/WireMock.Net/issues/292 // On some platforms, AppContext.BaseDirectory is null, which causes WebHostBuilder to fail if ContentRoot is not // specified (even though we don't actually use that base path mechanism, since we have our own way of configuring // a filesystem handler). if (string.IsNullOrEmpty(AppContext.BaseDirectory)) { builder.UseContentRoot(System.IO.Directory.GetCurrentDirectory()); } _host = builder .ConfigureServices(services => { services.AddSingleton(_options); services.AddSingleton <IMappingMatcher, MappingMatcher>(); services.AddSingleton <IOwinRequestMapper, OwinRequestMapper>(); services.AddSingleton <IOwinResponseMapper, OwinResponseMapper>(); }) .Configure(appBuilder => { appBuilder.UseMiddleware <GlobalExceptionMiddleware>(); _options.PreWireMockMiddlewareInit?.Invoke(appBuilder); appBuilder.UseMiddleware <WireMockMiddleware>(); _options.PostWireMockMiddlewareInit?.Invoke(appBuilder); }) .UseKestrel(options => { var urlDetails = _urlOptions.GetDetails(); #if NETSTANDARD1_3 var urls = urlDetails.Select(u => u.Url); if (urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { options.UseHttps(PublicCertificateHelper.GetX509Certificate2()); } #else foreach (var detail in urlDetails) { if (detail.Url.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) { options.Listen(System.Net.IPAddress.Any, detail.Port, listenOptions => { listenOptions.UseHttps(); // PublicCertificateHelper.GetX509Certificate2() }); } else { options.Listen(System.Net.IPAddress.Any, detail.Port); } } #endif }) #if NETSTANDARD1_3 .UseUrls(_urlOptions.GetDetails().Select(u => u.Url).ToArray()) #endif .Build(); return(RunHost(_cts.Token)); }
public Task StartAsync() { var builder = new WebHostBuilder(); // Workaround for https://github.com/WireMock-Net/WireMock.Net/issues/292 // On some platforms, AppContext.BaseDirectory is null, which causes WebHostBuilder to fail if ContentRoot is not // specified (even though we don't actually use that base path mechanism, since we have our own way of configuring // a filesystem handler). if (string.IsNullOrEmpty(AppContext.BaseDirectory)) { builder.UseContentRoot(System.IO.Directory.GetCurrentDirectory()); } _host = builder .ConfigureServices(services => { services.AddSingleton(_options.FileSystemHandler); services.AddSingleton(_options); services.AddSingleton <IMappingMatcher, MappingMatcher>(); services.AddSingleton <IOwinRequestMapper, OwinRequestMapper>(); services.AddSingleton <IOwinResponseMapper, OwinResponseMapper>(); }) .Configure(appBuilder => { appBuilder.UseMiddleware <GlobalExceptionMiddleware>(); _options.PreWireMockMiddlewareInit?.Invoke(appBuilder); appBuilder.UseMiddleware <WireMockMiddleware>(); _options.PostWireMockMiddlewareInit?.Invoke(appBuilder); }) .UseKestrel(options => { #if NETSTANDARD1_3 if (_urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { options.UseHttps(PublicCertificateHelper.GetX509Certificate2()); } #else // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?tabs=aspnetcore2x foreach (string url in _urls.Where(u => u.StartsWith("http://", StringComparison.OrdinalIgnoreCase))) { PortUtils.TryExtract(url, out string protocol, out string host, out int port); options.Listen(System.Net.IPAddress.Any, port); } foreach (string url in _urls.Where(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase))) { PortUtils.TryExtract(url, out string protocol, out string host, out int port); options.Listen(System.Net.IPAddress.Any, port, listenOptions => { listenOptions.UseHttps(); // PublicCertificateHelper.GetX509Certificate2() }); } #endif }) #if NETSTANDARD1_3 .UseUrls(_urls) #endif .Build(); return(RunHost(_cts.Token)); }