コード例 #1
0
ファイル: StageModule.cs プロジェクト: yangbocheng/surging
 public override void RegisterBuilder(WebHostContext context)
 {
     context.KestrelOptions.Listen(context.Address, 443, listOptions =>
     {
         listOptions.UseHttps();
     });
 }
コード例 #2
0
        void IWebServerListener.Listen(WebHostContext context)
        {
            var httpsPorts = AppConfig.Options.HttpsPort?.Split(",") ?? new string[] { "443" };
            var httpPorts  = AppConfig.Options.HttpPorts?.Split(",");

            if (AppConfig.Options.EnableHttps)
            {
                foreach (var httpsPort in httpsPorts)
                {
                    int.TryParse(httpsPort, out int port);
                    if (string.IsNullOrEmpty(AppConfig.Options.HttpsPort))
                    {
                        port = 443;
                    }
                    if (port > 0)
                    {
                        context.KestrelOptions.Listen(context.Address, port, listOptions =>
                        {
                            X509Certificate2 certificate2 = null;
                            var fileName = AppConfig.Options.CertificateFileName;
                            var password = AppConfig.Options.CertificatePassword;
                            if (fileName != null && password != null)
                            {
                                var pfxFile = Path.Combine(AppContext.BaseDirectory, AppConfig.Options.CertificateFileName);
                                if (File.Exists(pfxFile))
                                {
                                    certificate2 = new X509Certificate2(pfxFile, AppConfig.Options.CertificatePassword);
                                }
                                else
                                {
                                    var paths = GetPaths(AppConfig.Options.CertificateLocation);
                                    foreach (var path in paths)
                                    {
                                        pfxFile = Path.Combine(path, AppConfig.Options.CertificateFileName);
                                        if (File.Exists(pfxFile))
                                        {
                                            certificate2 = new X509Certificate2(pfxFile, AppConfig.Options.CertificatePassword);
                                        }
                                    }
                                }
                            }
                            listOptions = certificate2 == null ? listOptions.UseHttps() : listOptions.UseHttps(certificate2);
                        });
                    }
                }
            }

            if (httpPorts != null)
            {
                foreach (var httpPort in httpPorts)
                {
                    int.TryParse(httpPort, out int port);
                    if (port > 0)
                    {
                        context.KestrelOptions.Listen(context.Address, port);
                    }
                }
            }
        }
コード例 #3
0
        public void TearDown(WebHostContext context)
        {
            var db = context.Properties[NuwaDBContextKey] as ITestDatabase;

            if (db != null && db.Exist())
            {
                db.Delete();
            }
        }
コード例 #4
0
        private void SetKestrelOptions(WebHostContext context)
        {
            var requestBodyDataRate  = AppConfig.Options.MinRequestBodyDataRate;
            var responseBodyDataRate = AppConfig.Options.MinResponseDataRate;

            context.KestrelOptions.Limits.MinRequestBodyDataRate           = requestBodyDataRate == null ? null : new MinDataRate(requestBodyDataRate.BytesPerSecond, requestBodyDataRate.GracePeriod);
            context.KestrelOptions.Limits.MinResponseDataRate              = responseBodyDataRate == null ? null : new MinDataRate(responseBodyDataRate.BytesPerSecond, responseBodyDataRate.GracePeriod);
            context.KestrelOptions.Limits.MaxConcurrentConnections         = AppConfig.Options.MaxConcurrentConnections;
            context.KestrelOptions.Limits.MaxConcurrentUpgradedConnections = AppConfig.Options.MaxConcurrentUpgradedConnections;
            context.KestrelOptions.Limits.MaxRequestBodySize         = AppConfig.Options.MaxRequestBodySize;
            context.KestrelOptions.Limits.MaxRequestBufferSize       = AppConfig.Options.MaxRequestBufferSize;
            context.KestrelOptions.Limits.MaxRequestHeaderCount      = AppConfig.Options.MaxRequestHeaderCount;
            context.KestrelOptions.Limits.MaxRequestHeadersTotalSize = AppConfig.Options.MaxRequestHeadersTotalSize;
            context.KestrelOptions.Limits.MaxRequestLineSize         = AppConfig.Options.MaxRequestLineSize;
            context.KestrelOptions.Limits.MaxResponseBufferSize      = AppConfig.Options.MaxResponseBufferSize;
        }
コード例 #5
0
 /// <summary>
 /// Configures the host.
 /// </summary>
 /// <param name="moduleProvider">The module provider.</param>
 /// <param name="context">The context.</param>
 public static void ConfigureHost(this IModuleProvider moduleProvider, WebHostContext context)
 {
     moduleProvider.Modules.ForEach(p =>
     {
         try
         {
             if (p.Enable)
             {
                 var module = p as KestrelHttpModule;
                 module?.ConfigureWebHost(context);
             }
         }
         catch (Exception ex)
         {
             throw ex;
         }
     });
 }
コード例 #6
0
        public void Initialize(WebHostContext context)
        {
            ITestDatabase db;
            string        connectionString;
            string        prefix = context.TestType.TestTypeInfo.Type.Name;

            if (context.HostOptions is IISExpressHostOptions)
            {
                connectionString = new ConnectionStringBuilder().UseLocalDB().UseRandomDBName(prefix).ToString();
                db = new SqlTestDatabase(connectionString);
            }
            else if (context.HostOptions is IISHostOptions)
            {
                connectionString = new ConnectionStringBuilder().UseLocalSqlExpress().UseRandomDBName(prefix).ToString();
                db = new SqlTestDatabase(connectionString);
            }
            else if (context.HostOptions is AzureWebsiteHostOptions)
            {
                connectionString = NuwaGlobalConfiguration.SqlAzureConnectionString;
                db = new SqlTestDatabase(connectionString);
            }
            else
            {
                throw new NotSupportedException(context.HostOptions.GetType().Name);
            }

            if (db.Exist())
            {
                db.Delete();
            }

            context.Properties.Add(NuwaDBContextKey, db);

            context.DeploymentOptions.WebConfigTransformers.Add(new WebConfigTransformer(
                                                                    config =>
            {
                config.ClearConnectionStrings();
                config.AddConnectionString(ConnectionStringName, connectionString, "System.Data.SqlClient");
            }));
        }
コード例 #7
0
 public override void RegisterBuilder(WebHostContext context)
 {
     _listener.Listen(context);
 }
コード例 #8
0
 public override void RegisterBuilder(WebHostContext context)
 {
 }
コード例 #9
0
        void IWebServerListener.Listen(WebHostContext context)
        {
            var httpsPorts = AppConfig.Options.HttpsPort?.Split(",") ?? new string[] { "443" };
            var httpPorts  = AppConfig.Options.HttpPorts?.Split(",");

            if (AppConfig.Options.EnableHttps)
            {
                foreach (var httpsPort in httpsPorts)
                {
                    int.TryParse(httpsPort, out int port);
                    if (string.IsNullOrEmpty(AppConfig.Options.HttpsPort))
                    {
                        port = 443;
                    }
                    if (port > 0)
                    {
                        context.KestrelOptions.Listen(context.Address, port, listOptions =>
                        {
                            X509Certificate2 certificate2 = null;
                            var fileName = AppConfig.Options.CertificateFileName;
                            var password = AppConfig.Options.CertificatePassword;
                            if (fileName != null && password != null)
                            {
                                var pfxFile = Path.Combine(AppContext.BaseDirectory, AppConfig.Options.CertificateFileName);
                                if (File.Exists(pfxFile))
                                {
                                    certificate2 = new X509Certificate2(pfxFile, AppConfig.Options.CertificatePassword);
                                }
                                else
                                {
                                    var paths = GetPaths(AppConfig.Options.CertificateLocation);
                                    foreach (var path in paths)
                                    {
                                        pfxFile = Path.Combine(path, AppConfig.Options.CertificateFileName);
                                        if (File.Exists(pfxFile))
                                        {
                                            certificate2 = new X509Certificate2(pfxFile, AppConfig.Options.CertificatePassword);
                                        }
                                    }
                                }
                            }
                            listOptions = certificate2 == null ? listOptions.UseHttps() : listOptions.UseHttps(certificate2);
                        });
                    }
                }
            }

            if (httpPorts != null)
            {
                foreach (var httpPort in httpPorts)
                {
                    int.TryParse(httpPort, out int port);
                    if (port > 0)
                    {
                        context.KestrelOptions.Listen(context.Address, port);
                    }
                }
            }

            var requestBodyDataRate  = AppConfig.Options.MinRequestBodyDataRate;
            var responseBodyDataRate = AppConfig.Options.MinResponseDataRate;

            context.KestrelOptions.Limits.MinRequestBodyDataRate           = requestBodyDataRate == null?null: new MinDataRate(requestBodyDataRate.BytesPerSecond, requestBodyDataRate.GracePeriod);
            context.KestrelOptions.Limits.MinResponseDataRate              = responseBodyDataRate == null ? null : new MinDataRate(responseBodyDataRate.BytesPerSecond, responseBodyDataRate.GracePeriod);
            context.KestrelOptions.Limits.MaxConcurrentConnections         = AppConfig.Options.MaxConcurrentConnections;
            context.KestrelOptions.Limits.MaxConcurrentUpgradedConnections = AppConfig.Options.MaxConcurrentUpgradedConnections;
            context.KestrelOptions.Limits.MaxRequestBodySize         = AppConfig.Options.MaxRequestBodySize;
            context.KestrelOptions.Limits.MaxRequestBufferSize       = AppConfig.Options.MaxRequestBufferSize;
            context.KestrelOptions.Limits.MaxRequestHeaderCount      = AppConfig.Options.MaxRequestHeaderCount;
            context.KestrelOptions.Limits.MaxRequestHeadersTotalSize = AppConfig.Options.MaxRequestHeadersTotalSize;
            context.KestrelOptions.Limits.MaxRequestLineSize         = AppConfig.Options.MaxRequestLineSize;
            context.KestrelOptions.Limits.MaxResponseBufferSize      = AppConfig.Options.MaxResponseBufferSize;
        }
コード例 #10
0
 /// <summary>
 /// Registers the builder.
 /// </summary>
 /// <param name="context">The context.</param>
 public override void ConfigureWebHost(WebHostContext context)
 {
     _listener.Listen(context);
 }
コード例 #11
0
 public override void RegisterBuilder(WebHostContext context)
 {
     EnableHttps = context.EnableHttps;
     _listener.Listen(context);
 }