public HttpServiceListener(IActivator activator, IWorker worker, IServiceEndPointDefinition serviceEndPointDefinition, ICertificateLocator certificateLocator, ILog log, IEventPublisher <ServiceCallEvent> eventPublisher, IEnumerable <ICustomEndpoint> customEndpoints, JsonExceptionSerializer exceptionSerializer, ServiceSchema serviceSchema, Func <LoadShedding> loadSheddingConfig, IServerRequestPublisher serverRequestPublisher) { ServiceSchema = serviceSchema; _serverRequestPublisher = serverRequestPublisher; ServiceEndPointDefinition = serviceEndPointDefinition; Worker = worker; Activator = activator; Log = log; EventPublisher = eventPublisher; CustomEndpoints = customEndpoints.ToArray(); ExceptionSerializer = exceptionSerializer; LoadSheddingConfig = loadSheddingConfig; if (serviceEndPointDefinition.UseSecureChannel) { ServerRootCertHash = certificateLocator.GetCertificate("Service").GetHashOfRootCertificate(); } var urlPrefixTemplate = ServiceEndPointDefinition.UseSecureChannel ? "https://+:{0}/" : "http://+:{0}/"; Prefix = string.Format(urlPrefixTemplate, ServiceEndPointDefinition.HttpPort); Listener = new HttpListener { IgnoreWriteExceptions = true, Prefixes = { Prefix } }; }
public HttpServiceListener( IActivator activator, IWorker worker, IServiceEndPointDefinition serviceEndPointDefinition, ICertificateLocator certificateLocator, ILog log, IEnumerable <ICustomEndpoint> customEndpoints, IEnvironment environment, JsonExceptionSerializer exceptionSerializer, ServiceSchema serviceSchema, Func <LoadShedding> loadSheddingConfig, IServerRequestPublisher serverRequestPublisher, CurrentApplicationInfo appInfo) { ServiceSchema = serviceSchema; _serverRequestPublisher = serverRequestPublisher; ServiceEndPointDefinition = serviceEndPointDefinition; Worker = worker; Activator = activator; Log = log; CustomEndpoints = customEndpoints.ToArray(); Environment = environment; ExceptionSerializer = exceptionSerializer; LoadSheddingConfig = loadSheddingConfig; AppInfo = appInfo; if (ServiceEndPointDefinition.HttpsPort != null && ServiceEndPointDefinition.ClientCertificateVerification != ClientCertificateVerificationMode.Disable) { ServerRootCertHash = certificateLocator.GetCertificate("Service").GetHashOfRootCertificate(); } Listener = new HttpListener { IgnoreWriteExceptions = true }; if (ServiceEndPointDefinition.HttpsPort != null) { Listener.Prefixes.Add($"https://+:{ServiceEndPointDefinition.HttpsPort}/"); } if (ServiceEndPointDefinition.HttpPort != null) { Listener.Prefixes.Add($"http://+:{ServiceEndPointDefinition.HttpPort}/"); } if (!Listener.Prefixes.Any()) { Log.Warn(_ => _("HttpServiceListener is not listening on any ports, no HTTP or HTTPS ports in ServiceEndPointDefinition")); } var context = Metric.Context("Service").Context(AppInfo.Name); _serializationTime = context.Timer("Serialization", Unit.Calls); _deserializationTime = context.Timer("Deserialization", Unit.Calls); _roundtripTime = context.Timer("Roundtrip", Unit.Calls); _metaEndpointsRoundtripTime = context.Timer("MetaRoundtrip", Unit.Calls); _successCounter = context.Counter("Success", Unit.Calls); _failureCounter = context.Counter("Failed", Unit.Calls); _activeRequestsCounter = context.Timer("ActiveRequests", Unit.Requests); _endpointContext = context.Context("Endpoints"); }
public HttpServiceListener(IActivator activator, IWorker worker, IServiceEndPointDefinition serviceEndPointDefinition, ICertificateLocator certificateLocator, ILog log, IEnumerable <ICustomEndpoint> customEndpoints, IEnvironment environment, JsonExceptionSerializer exceptionSerializer, ServiceSchema serviceSchema, Func <LoadShedding> loadSheddingConfig, IServerRequestPublisher serverRequestPublisher, CurrentApplicationInfo appInfo ) { ServiceSchema = serviceSchema; _serverRequestPublisher = serverRequestPublisher; ServiceEndPointDefinition = serviceEndPointDefinition; Worker = worker; Activator = activator; Log = log; CustomEndpoints = customEndpoints.ToArray(); Environment = environment; ExceptionSerializer = exceptionSerializer; LoadSheddingConfig = loadSheddingConfig; AppInfo = appInfo; if (serviceEndPointDefinition.UseSecureChannel) { ServerRootCertHash = certificateLocator.GetCertificate("Service").GetHashOfRootCertificate(); } var urlPrefixTemplate = ServiceEndPointDefinition.UseSecureChannel ? "https://+:{0}/" : "http://+:{0}/"; Prefix = string.Format(urlPrefixTemplate, ServiceEndPointDefinition.HttpPort); Listener = new HttpListener { IgnoreWriteExceptions = true, Prefixes = { Prefix } }; var context = Metric.Context("Service").Context(AppInfo.Name); _serializationTime = context.Timer("Serialization", Unit.Calls); _deserializationTime = context.Timer("Deserialization", Unit.Calls); _roundtripTime = context.Timer("Roundtrip", Unit.Calls); _metaEndpointsRoundtripTime = context.Timer("MetaRoundtrip", Unit.Calls); _successCounter = context.Counter("Success", Unit.Calls); _failureCounter = context.Counter("Failed", Unit.Calls); _activeRequestsCounter = context.Timer("ActiveRequests", Unit.Requests); _endpointContext = context.Context("Endpoints"); }
public HttpServiceListener( IActivator activator, IWorker worker, IServiceEndPointDefinition serviceEndPointDefinition, ICertificateLocator certificateLocator, ILog log, IEnumerable <ICustomEndpoint> customEndpoints, IEnvironment environment, JsonExceptionSerializer exceptionSerializer, ServiceSchema serviceSchema, Func <LoadShedding> loadSheddingConfig, IServerRequestPublisher serverRequestPublisher, CurrentApplicationInfo appInfo, Func <MicrodotHostingConfig> microdotHostingConfigFactory, IMicrodotTypePolicySerializationBinder serializationBinder) { ServiceSchema = serviceSchema; _serverRequestPublisher = serverRequestPublisher; ServiceEndPointDefinition = serviceEndPointDefinition; Worker = worker; Activator = activator; Log = log; CustomEndpoints = customEndpoints.ToArray(); Environment = environment; ExceptionSerializer = exceptionSerializer; LoadSheddingConfig = loadSheddingConfig; AppInfo = appInfo; JsonSettings.SerializationBinder = serializationBinder; if (ServiceEndPointDefinition.HttpsPort != null && ServiceEndPointDefinition.ClientCertificateVerification != ClientCertificateVerificationMode.Disable) { var serviceCertificate = certificateLocator.GetCertificate("Service"); Log.Info(_ => _($"Service certificate loaded: {serviceCertificate.FriendlyName}", unencryptedTags: new { Thumbprint = serviceCertificate.Thumbprint.Substring(serviceCertificate.Thumbprint.Length - 5), })); ServerRootCertHash = serviceCertificate.GetHashOfRootCertificate(); } Listener = new HttpListener { IgnoreWriteExceptions = true }; _uriPrefixes = new List <string>(); if (ServiceEndPointDefinition.HttpsPort != null) { _uriPrefixes.Add($"https://+:{ServiceEndPointDefinition.HttpsPort}/"); } if (ServiceEndPointDefinition.HttpPort != null) { _uriPrefixes.Add($"http://+:{ServiceEndPointDefinition.HttpPort}/"); } if (!_uriPrefixes.Any()) { Log.Warn(_ => _("HttpServiceListener is not listening on any ports, no HTTP or HTTPS ports in ServiceEndPointDefinition")); } else { foreach (string prefix in _uriPrefixes) { Listener.Prefixes.Add(prefix); } } var context = Metric.Context("Service").Context(AppInfo.Name); _serializationTime = context.Timer("Serialization", Unit.Calls); _deserializationTime = context.Timer("Deserialization", Unit.Calls); _roundtripTime = context.Timer("Roundtrip", Unit.Calls); _metaEndpointsRoundtripTime = context.Timer("MetaRoundtrip", Unit.Calls); _successCounter = context.Counter("Success", Unit.Calls); _failureCounter = context.Counter("Failed", Unit.Calls); _activeRequestsCounter = context.Timer("ActiveRequests", Unit.Requests); _endpointContext = context.Context("Endpoints"); }