static void Main(string[] args)
        {
            ServiceHost svcHost = null;

            try
            {
                var container = new WindsorContainer();

                container.AddFacility <WcfFacility>().Install(FromAssembly.Named("SystemManagament"));
                container.Register(Component.For <IWorkstationMonitorService>().ImplementedBy <WorkstationMonitorService>());

                var assemblyQualifiedName = typeof(IWorkstationMonitorService).AssemblyQualifiedName;
                //var factory = new DefaultServiceHostFactory(container.Kernel);
                var serviceHost = new DefaultServiceHostFactory().CreateServiceHost(assemblyQualifiedName, new Uri[0]);
                //var serviceHost = new DefaultServiceHostFactory()
                //    .CreateServiceHost(assemblyQualifiedName, new[] { new Uri("net.tcp://localhost:8000/") });
                serviceHost.Open();

                Console.WriteLine("\n\nService is running.");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Service can not be started \n\nError Message: [{ex.Message}]");
            }
            finally
            {
                Console.WriteLine("\nPress any key to close the Service");
                Console.ReadKey();
                svcHost.Close();
                svcHost = null;
            }
        }
        private void CreateServiceHost <T>(ref ServiceHostBase host, string message)
        {
            host = new DefaultServiceHostFactory(container.Kernel)
                   .CreateServiceHost(typeof(T).AssemblyQualifiedName, new Uri[0]);

            // Hook on to the service host faulted events.
            host.Faulted += new WeakEventHandler <EventArgs>(OnServiceFaulted).Handler;

            // Open the ServiceHostBase to create listeners and start listening for messages.
            host.Open();
            logger.Info(string.Format("SachaBarber CQRS Demo {0} Started", message));
        }
示例#3
0
        private ServiceHostBase CreateAndOpenWCFHost(string constructorString)
        {
            ServiceHostBase serviceHost     = new DefaultServiceHostFactory().CreateServiceHost(constructorString, new Uri[0]);
            ServiceEndpoint serviceEndpoint = serviceHost.Description.Endpoints.SingleOrDefault(x => x.Binding is BasicHttpBinding);

            if (!serviceHost.Description.Behaviors.Any(x => x is ServiceMetadataBehavior) && serviceEndpoint != null)
            {
                string uriString = serviceEndpoint.Address.Uri.ToString().Replace("localhost", Environment.MachineName);

                var metadataBehavior = new ServiceMetadataBehavior
                {
                    HttpGetEnabled = true,
                    HttpGetUrl     = new Uri(uriString)
                };
                serviceHost.Description.Behaviors.Add(metadataBehavior);
            }
            serviceHost.Open();
            return(serviceHost);
        }
        private ServiceHostBase CreateAndOpenWCFHost(string constructorString)
        {
            ServiceHostBase serviceHost = new DefaultServiceHostFactory().CreateServiceHost(constructorString, new Uri[0]);
            ServiceEndpoint serviceEndpoint = serviceHost.Description.Endpoints.SingleOrDefault(x => x.Binding is BasicHttpBinding);

            if (!serviceHost.Description.Behaviors.Any(x => x is ServiceMetadataBehavior) && serviceEndpoint != null)
            {
                string uriString = serviceEndpoint.Address.Uri.ToString().Replace("localhost", Environment.MachineName);

                var metadataBehavior = new ServiceMetadataBehavior
                    {
                        HttpGetEnabled = true,
                        HttpGetUrl = new Uri(uriString)
                    };
                serviceHost.Description.Behaviors.Add(metadataBehavior);
            }
            serviceHost.Open();
            return serviceHost;
        }
 private ServiceHostBase CreateAndOpenWCFHost(string constructorString)
 {
     ServiceHostBase serviceHost = new DefaultServiceHostFactory().CreateServiceHost(constructorString, new Uri[0]);
     serviceHost.Open();
     return serviceHost;
 }