/// <summary> /// Initializes a new instance of the type /// </summary> /// <param name="configuration">The configuration for the Kestrel Server</param> /// <param name="loggerFactory">A factory to create loggers from</param> /// <param name="factory">An optional factory for the startup type</param> public KestrelHost(IKestrelHostConfiguration configuration, ILoggerFactory loggerFactory, StartupFactory factory = null) { Guard.NotNull(nameof(configuration), configuration); Guard.NotNull(nameof(configuration.Address), configuration.Address); Guard.NotLessThan(nameof(configuration.KeepAlive), configuration.KeepAlive, TimeSpan.FromSeconds(1)); Guard.NotLessThan(nameof(configuration.MaximumConcurrentConnections), configuration.MaximumConcurrentConnections, 1); Guard.NotNull(nameof(loggerFactory), loggerFactory); _logger = loggerFactory.CreateLogger("Kestrel Host"); _configuration = configuration; _factory = factory; }
/// <summary> /// Initializes a new instance of the type /// </summary> /// <param name="kestrelConfiguration">The kestrel configuration details</param> /// <param name="loggerFactory">A factory to create loggers from</param> /// <param name="probeConfiguration">The probe configuration</param> /// <param name="validator">The validation routine</param> public MultiProbe(IKestrelHostConfiguration kestrelConfiguration, ILoggerFactory loggerFactory, IMultiProbeConfiguration probeConfiguration, IMultiProbeValidator validator) : base(kestrelConfiguration, loggerFactory, () => new MultiProbeStartup(probeConfiguration, loggerFactory, validator)) { }
/// <summary> /// Initializes a new instance of the type /// </summary> /// <param name="configuration">The kestrel host configuration</param> /// <param name="loggerFactory">A factory that can be used to create loggers</param> /// <param name="availabilityCheck">The logic to validate success results</param> public KestrelAvailabilityProbe(IKestrelHostConfiguration configuration, ILoggerFactory loggerFactory, IAvailabilityCheck availabilityCheck) : base(configuration, loggerFactory, () => new MultiProbeStartup(new MultiProbeConfiguration { EndpointList = AvailabilityProbeLogic.EndpointList }, loggerFactory, new AvailabilityProbeLogic(loggerFactory, availabilityCheck))) { }
/// <summary> /// Initializes a new instance of the type /// </summary> /// <param name="configuration">The configuration for the Kestrel Server</param> /// <param name="loggerFactory">A factory to create loggers from</param> /// <param name="factory">An optional factory for the startup type</param> public KestrelProbeHost(IKestrelHostConfiguration configuration, ILoggerFactory loggerFactory, StartupFactory factory = null) : base(configuration, loggerFactory, factory) { }
/// <summary> /// Initializes a new instance of the type /// </summary> /// <param name="configuration">Kestrel host configuration</param> /// <param name="loggerFactory">A factory that can be used to create loggers</param> /// <param name="healthCheck">Logic that determines if the service is considered healthy</param> public KestrelHealthProbe(IKestrelHostConfiguration configuration, ILoggerFactory loggerFactory, IHealthCheck healthCheck) : base(configuration, loggerFactory, () => new MultiProbeStartup(new MultiProbeConfiguration { EndpointList = HealthProbeLogic.EndpointList }, loggerFactory, new HealthProbeLogic(loggerFactory, healthCheck))) { }