public WebJobsScriptHostService(IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IScriptHostBuilder scriptHostBuilder, ILoggerFactory loggerFactory, IServiceProvider rootServiceProvider, IServiceScopeFactory rootScopeFactory, IScriptWebHostEnvironment scriptWebHostEnvironment, IEnvironment environment, HostPerformanceManager hostPerformanceManager, IOptions <HostHealthMonitorOptions> healthMonitorOptions) { if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _applicationHostOptions = applicationHostOptions ?? throw new ArgumentNullException(nameof(applicationHostOptions)); _scriptWebHostEnvironment = scriptWebHostEnvironment ?? throw new ArgumentNullException(nameof(scriptWebHostEnvironment)); _rootServiceProvider = rootServiceProvider; _scriptHostBuilder = scriptHostBuilder ?? throw new ArgumentNullException(nameof(scriptHostBuilder)); _environment = environment ?? throw new ArgumentNullException(nameof(environment)); _performanceManager = hostPerformanceManager ?? throw new ArgumentNullException(nameof(hostPerformanceManager)); _healthMonitorOptions = healthMonitorOptions ?? throw new ArgumentNullException(nameof(healthMonitorOptions)); _logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral); State = ScriptHostState.Default; if (ShouldMonitorHostHealth) { _healthCheckWindow = new SlidingWindow <bool>(_healthMonitorOptions.Value.HealthCheckWindow); _hostHealthCheckTimer = new Timer(OnHostHealthCheckTimer, null, TimeSpan.Zero, _healthMonitorOptions.Value.HealthCheckInterval); } }
public WebJobsScriptHostService(IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IScriptHostBuilder scriptHostBuilder, ILoggerFactory loggerFactory, IScriptWebHostEnvironment scriptWebHostEnvironment, IEnvironment environment, HostPerformanceManager hostPerformanceManager, IOptions <HostHealthMonitorOptions> healthMonitorOptions, IMetricsLogger metricsLogger, IApplicationLifetime applicationLifetime) { if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } // This will no-op if already initialized. InitializeApplicationInsightsRequestTracking(); _applicationLifetime = applicationLifetime; RegisterApplicationLifetimeEvents(); _metricsLogger = metricsLogger; _applicationHostOptions = applicationHostOptions ?? throw new ArgumentNullException(nameof(applicationHostOptions)); _scriptWebHostEnvironment = scriptWebHostEnvironment ?? throw new ArgumentNullException(nameof(scriptWebHostEnvironment)); _scriptHostBuilder = scriptHostBuilder ?? throw new ArgumentNullException(nameof(scriptHostBuilder)); _environment = environment ?? throw new ArgumentNullException(nameof(environment)); _performanceManager = hostPerformanceManager ?? throw new ArgumentNullException(nameof(hostPerformanceManager)); _healthMonitorOptions = healthMonitorOptions ?? throw new ArgumentNullException(nameof(healthMonitorOptions)); _logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral); _hostStarted = _hostStartedSource.Task; State = ScriptHostState.Default; if (ShouldMonitorHostHealth) { _healthCheckWindow = new SlidingWindow <bool>(_healthMonitorOptions.Value.HealthCheckWindow); _hostHealthCheckTimer = new Timer(OnHostHealthCheckTimer, null, TimeSpan.Zero, _healthMonitorOptions.Value.HealthCheckInterval); } }