Exemple #1
0
        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());
 }
Exemple #3
0
        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();
        }