public ServiceProxyProvider(string serviceName, IEventPublisher <ClientCallEvent> eventPublisher, ILog log, Func <string, ReachabilityCheck, IMultiEnvironmentServiceDiscovery> serviceDiscoveryFactory, Func <DiscoveryConfig> getConfig, JsonExceptionSerializer exceptionSerializer, CurrentApplicationInfo appInfo, Func <HttpClientConfiguration, HttpMessageHandler> messageHandlerFactory, IMicrodotTypePolicySerializationBinder serializationBinder) { JsonSettings.SerializationBinder = serializationBinder; EventPublisher = eventPublisher; Log = log; ServiceName = serviceName; GetDiscoveryConfig = getConfig; ExceptionSerializer = exceptionSerializer; AppInfo = appInfo; var metricsContext = Metric.Context(METRICS_CONTEXT_NAME).Context(ServiceName); _serializationTime = metricsContext.Timer("Serialization", Unit.Calls); _deserializationTime = metricsContext.Timer("Deserialization", Unit.Calls); _roundtripTime = metricsContext.Timer("Roundtrip", Unit.Calls); _successCounter = metricsContext.Counter("Success", Unit.Calls); _failureCounter = metricsContext.Counter("Failed", Unit.Calls); _hostFailureCounter = metricsContext.Counter("HostFailure", Unit.Calls); _applicationExceptionCounter = metricsContext.Counter("ApplicationException", Unit.Calls); _httpMessageHandlerFactory = messageHandlerFactory; ServiceDiscovery = serviceDiscoveryFactory(serviceName, ValidateReachability); var globalConfig = GetDiscoveryConfig(); var serviceConfig = GetConfig(); _httpsTestInterval = TimeSpan.FromMinutes(serviceConfig.TryHttpsIntervalInMinutes ?? globalConfig.TryHttpsIntervalInMinutes); _connectionContext = Metric.Context("Connections"); }
public OrleansCustomSerialization(IMicrodotTypePolicySerializationBinder serializationBinder) { _supportedTypes = new[] { typeof(JObject), typeof(JArray), typeof(JToken), typeof(JValue), typeof(JProperty), typeof(JConstructor) }.ToDictionary(t => t.FullName); JsonSettingsFunc = () => new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented, DateParseHandling = DateParseHandling.None, SerializationBinder = serializationBinder }; }
public CalculatorService(IMicrodotTypePolicySerializationBinder binder) { _binder = binder; }
public ServiceProxyProvider(string serviceName, IMicrodotTypePolicySerializationBinder binder) { JsonSettings.SerializationBinder = binder; ServiceName = serviceName; }
public ExceptionHierarchySerializationBinder(IMicrodotTypePolicySerializationBinder microdotBinder) { _microdotBinder = microdotBinder; }
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"); }