private void Start(string host, int port, WebServerSslConfig sslConfig) { _listener = new HttpListener(); if (sslConfig == null) { _logger.Info($"Starting HTTP server on {host}:{port}"); _listener.Prefixes.Add($"http://{host}:{port}/"); } else { _logger.Info($"Starting HTTPS server on {host}:{port}"); _listener.Prefixes.Add($"https://{host}:{port}/"); _listener.SslConfiguration.EnabledSslProtocols = sslConfig.EnabledSslProtocols; _listener.SslConfiguration.ServerCertificate = Utils.LoadPemCertificate(sslConfig.CertificatePath, sslConfig.KeyPath); _listener.SslConfiguration.ClientCertificateRequired = sslConfig.ClientCertificateRequired; _listener.SslConfiguration.CheckCertificateRevocation = false; _listener.SslConfiguration.ClientCertificateValidationCallback = sslConfig.ClientCertificateValidationCallback; } _listener.Start(); }
public void RunAsync(string host, int port, WebServerSslConfig sslConfig = null) { Start(host, port, sslConfig); var _ = InternalRun(); }
public void RunSync(string host, int port, WebServerSslConfig sslConfig = null) { Start(host, port, sslConfig); InternalRun().Wait(); }