Esempio n. 1
0
        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            RegistryKey key = Registry.LocalMachine.OpenSubKey(Constants.BaseKey, false);

            if (!(key?.GetValue("Configured", 0) is int value) || value == 0)
            {
                return(Host.CreateDefaultBuilder().ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService <UnconfiguredHost>();
                })
                       .UseWindowsService()
                       .ConfigureAccessManagerLogging());
            }

            var host = new HostBuilder();

            host.UseContentRoot(Directory.GetCurrentDirectory());

            host.ConfigureHostConfiguration(config =>
            {
                config.AddEnvironmentVariables(prefix: "DOTNET_");
                if (args != null)
                {
                    config.AddCommandLine(args);
                }
            });

            host.UseNLog();

            host.ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.ConfigureAppSettings();

                if (args != null)
                {
                    config.AddCommandLine(args);
                }
            });

            host.ConfigureAccessManagerLogging();

            host.UseDefaultServiceProvider((context, options) =>
            {
                var isDevelopment       = context.HostingEnvironment.IsDevelopment();
                options.ValidateScopes  = isDevelopment;
                options.ValidateOnBuild = isDevelopment;
            });

            host.ConfigureWebHostDefaults(webBuilder =>
            {
                var httpsysConfig = new ConfigurationBuilder().ConfigureAppSettings().Build();

                webBuilder.UseHttpSys(httpsysConfig);
                webBuilder.UseStartup <Startup>();
            });

            host.UseWindowsService();

            return(host);
        }
Esempio n. 2
0
        public static IHostBuilder CreateHostBuilder(string[] args, RegistryProvider registryProvider)
        {
            bool safeStart = args.Any(t => string.Equals(t, "/safeStart", StringComparison.OrdinalIgnoreCase));

            if (safeStart || !registryProvider.IsConfigured)
            {
                return(Host.CreateDefaultBuilder().ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService <UnconfiguredHost>();
                })
                       .UseWindowsService()
                       .ConfigureAccessManagerLogging());
            }

            var host = new HostBuilder();

            host.UseContentRoot(Directory.GetCurrentDirectory());

            host.ConfigureHostConfiguration(config =>
            {
                config.AddEnvironmentVariables(prefix: "DOTNET_");
                if (args != null)
                {
                    config.AddCommandLine(args);
                }
            });

            host.UseNLog();

            host.ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.ConfigureAppSettings();

                if (args != null)
                {
                    config.AddCommandLine(args);
                }
            });

            host.ConfigureAccessManagerLogging();

            host.UseDefaultServiceProvider((context, options) =>
            {
                var isDevelopment       = context.HostingEnvironment.IsDevelopment();
                options.ValidateScopes  = isDevelopment;
                options.ValidateOnBuild = isDevelopment;
            });

            host.ConfigureWebHostDefaults(webBuilder =>
            {
                var httpsysConfig = new ConfigurationBuilder().ConfigureAppSettings().Build();

                webBuilder.UseHttpSys(httpsysConfig);
                webBuilder.UseStartup <Startup>();
            });

            host.UseWindowsService();

            return(host);
        }