public void Open() { try { // Step 4 of the hosting procedure: Enable metadata exchange. //var smb = new ServiceMetadataBehavior(); //smb.HttpGetEnabled = true; #if NET461 serviceHost = new ServiceHost(SingletonInstance, BaseAddresses.ToArray()); serviceHost.AddServiceEndpoint( ContractType, TheBinding, SingletonInstance.GetType().Name); if (ServiceBehaviors != null) { foreach (var item in ServiceBehaviors) { serviceHost.Description.Behaviors.Add(item); } } serviceHost.Open(); #endif } catch (Exception ex) { Console.WriteLine(ex.Message); throw ex; } }
public void EnableServiceBusDiscovery(Uri scope, bool enableMEX = true) { EnableServiceBusDiscovery(scope, enableMEX, BaseAddresses.ToArray()); }
private void Configure() { this.Credentials.UseIdentityConfiguration = true; this.Credentials.IdentityConfiguration = new IdentityConfiguration() { ClaimsAuthenticationManager = new AuthenticationManager(ServiceAuthenticators, BaseAddresses.ToArray()), ClaimsAuthorizationManager = new AuthorizationManager(ServiceAuthorizers, BaseAddresses.ToArray()), IssuerNameRegistry = new X509CertIssuerNameRegistry(), CertificateValidationMode = X509CertificateValidationMode.None }; this.Description.Behaviors.Find <ServiceAuthorizationBehavior>().PrincipalPermissionMode = PrincipalPermissionMode.Always; foreach (var serviceSecurityMode in serviceSecurityModes) { if (serviceSecurityMode is NoneServiceSecurityMode) { Logger.WarnFormat("*** Security mode is set to None which is insecure! ***"); } var endpoints = this.AddServiceEndpoints(serviceSecurityMode); foreach (var serviceEndpoint in endpoints) { Logger.InfoFormat("Endpoint {0} added, security mode {1}, uri {2}", serviceEndpoint.Contract.ContractType.FullName, serviceSecurityMode, serviceEndpoint.Address.Uri); } } this.SetServiceHostSecurity(serviceSecurityModes); this.EnableMetadataExchange(); this.AddDependencyInjectionBehavior <T>(hostContainer); this.EnableTransactionFlowAndReliableMessaging(); this.IncludeExceptionDetailInFaults = DebugHelper.IncludeExceptionDetailInFaults; this.AddErrorHandler(new ErrorHandler(Logger)); this.SecurityAuditEnabled = true; this.Description.Behaviors.Find <ServiceBehaviorAttribute>().InstanceContextMode = InstanceContextMode.PerCall; this.Description.Behaviors.Add(new AuditInterceptorServiceBehavior()); this.TypesToResolve = RootScope.ComponentRegistry.Registrations.Select(r => r.Activator.LimitType).ToArray(); }