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); }
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); }