示例#1
0
        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();
        }
示例#2
0
 public void RunAsync(string host, int port, WebServerSslConfig sslConfig = null)
 {
     Start(host, port, sslConfig);
     var _ = InternalRun();
 }
示例#3
0
 public void RunSync(string host, int port, WebServerSslConfig sslConfig = null)
 {
     Start(host, port, sslConfig);
     InternalRun().Wait();
 }