Esempio n. 1
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient()
                    .AddClientIntercepted(typeof(CacheProviderInterceptor))
                    .AddClientIntercepted(typeof(LogProviderInterceptor))
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .UseConsulManager(new ConfigInfo("127.0.0.1:8500"))
                    .UseDotNettyTransport()
                    .UseRabbitMQTransport()
                    .AddCache()
                    //.UseKafkaMQTransport(kafkaOption =>
                    //{
                    //    kafkaOption.Servers = "127.0.0.1";
                    //});
                    //.UseProtoBufferCodec()
                    .UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .Configure(build =>
                                  build.AddEventBusFile("eventBusSettings.json", optional: false))
                       .Configure(build =>
                                  build.AddCacheFile("cacheSettings.json", optional: false, reloadOnChange: true))
                       .UseNLog(LogLevel.Error)
                       // .UseLog4net(LogLevel.Error)
                       .UseServiceCache()
                       .UseProxy()
                       .UseClient()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Startup.Test(ServiceLocator.GetService <IServiceProxyFactory>());
                //Startup.TestRabbitMq(ServiceLocator.GetService<IServiceProxyFactory>());
                // Startup.TestForRoutePath(ServiceLocator.GetService<IServiceProxyProvider>());
                /// test Parallel
                //var connectionCount = 250000;
                //var requestThread = new Thread(() => StartRequest(connectionCount)) { IsBackground = true };
                //requestThread.Start();
                //Console.ReadLine();
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //  Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .AddServiceEngine(typeof(SurgingServiceEngine))
                    .AddClientIntercepted(typeof(CacheProviderInterceptor));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .ConfigureLogging(logger =>
            {
                logger.AddConfiguration(
                    AppConfig.GetSection("Logging"));
            })
                       .UseServer(options => { })
                       .UseConsoleLifetime()
                       .Configure(build =>
            {
#if DEBUG
                build.AddCacheFile("${cachePath}|/app/configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|/app/configs/surgingSettings.json", optional: false, reloadOnChange: true);
                build.AddEventBusFile("${eventBusPath}|/app/configs/eventBusSettings.json", optional: false, reloadOnChange: true);
                build.AddConsulFile("${consulPath}|/app/configs/consul.json", optional: false, reloadOnChange: true);
                build.AddZookeeperFile("${zookeeperPath}|/app/configs/zookeeper.json", optional: false, reloadOnChange: true);
#else
                build.AddCacheFile("${cachePath}|configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|configs/surgingSettings.json", optional: false, reloadOnChange: true);
                build.AddEventBusFile("${eventBusPath}|configs/eventBusSettings.json", optional: false);
                build.AddConsulFile("${consulPath}|configs/consul.json", optional: false, reloadOnChange: true);
                build.AddZookeeperFile("${zookeeperPath}|configs/zookeeper.json", optional: false, reloadOnChange: true);
#endif
            })
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var builder = new ServiceHostBuilder();

            builder.ConfigureOptions <ClusterMembershipServiceOptions>();
            builder.ConfigureOptions <GatewayMembershipServiceOptions>();
            builder.AddSystemTarget <IClusterMembershipService, ClusterMembershipService>();
            builder.AddSystemTarget <IGatewayMembershipService, GatewayMembershipService>();
            builder.AddService <IDataService, DataService>();

            serviceHost = builder.Build();
            serviceHost.Start();
            Console.WriteLine("started...");
            Console.ReadLine();
            serviceHost.Stop();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()      //添加支持服务代理远程调用
                    .AddConfigurationWatch() //添加同步更新配置文件的监听处理
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    //.UseConsulManager(new ConfigInfo("127.0.0.1:8500"))//使用Consul管理
                    .AddServiceEngine(typeof(SurgingServiceEngine));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));    //初始化注入容器
                });
            })
                       .ConfigureLogging(logger =>
            {
                logger.AddConfiguration(Surging.Core.CPlatform.AppConfig.GetSection("Logging"));
            })
                       .UseServer(options =>
            {
                //options.Ip = "127.0.0.1";
                //options.Port = 2801;
                //options.Token = "True";
                //options.ExecutionTimeoutInMilliseconds = 30000;
                //options.MaxConcurrentRequests = 200;
            })
                       //.UseLog4net("log4net.config") //使用log4net记录日志
                       //.UseLog4net(LogLevel.Error) //使用log4net记录日志
                       //.UseNLog(LogLevel.Error, "NLog.config")
                       .UseConsoleLifetime()
                       .UseLog4net()
                       .Configure(build => build.AddCacheFile("${cachepath}|cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build => build.AddCPlatformFile("${surgingpath}|surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseStartup <Startup>()
                       .Build();

            //在启动的时候吧连接字符串赋值
            SurgingtestContext.DbConnStr = Surging.Core.CPlatform.AppConfig.GetSection("ConnectionStrings").GetSection("MySqlStr").Value;
            SqlClient.ConnectionString   = Surging.Core.CPlatform.AppConfig.GetSection("ConnectionStrings").GetSection("MySqlStr").Value;
            using (host.Run())
            {
                Console.WriteLine($"Surging.TestDemo服务端启动成功,{DateTime.Now}");
            }
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                // builder.RegisterAssemblyModules();
                //这里写自己的注册
            })
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime();
                    option.AddRelateService();
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    option.AddRabbitMQAdapt();
                    //option.UseMessagePackCodec();
                    option.UseJsonCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       .UseLog4net("Configs/log4net.config")
                       .UseServer(options =>
            {
                options.Ip    = "127.0.0.1";
                options.Port  = 10241;
                options.Token = "True";
                options.ExecutionTimeoutInMilliseconds = 30000;
                options.MaxConcurrentRequests          = 200;
            })
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.Title = "认证授权";
                Console.WriteLine($"认证授权——服务端启动成功,{DateTime.Now}。");
                Console.ReadLine();
            }
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient()
                    .AddCache();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .ConfigureLogging(logger =>
            {
                logger.AddConfiguration(
                    Core.CPlatform.AppConfig.GetSection("Logging"));
            })
                       .Configure(build => {
#if DEBUG
                build.AddCacheFile("${cachePath}|/app/configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|/app/configs/surgingSettings.json", optional: false, reloadOnChange: true);
                // build.AddEventBusFile("${eventBusPath}|/app/configs/eventBusSettings.json", optional: false);
#else
                build.AddCacheFile("${cachePath}|configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|configs/surgingSettings.json", optional: false, reloadOnChange: true);
                build.AddEventBusFile("configs/eventBusSettings.json", optional: false);
#endif
            })
                       .UseClient()
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                // Startup.Test(ServiceLocator.GetService<IServiceProxyFactory>());
                //Startup.TestRabbitMq(ServiceLocator.GetService<IServiceProxyFactory>());
                // Startup.TestForRoutePath(ServiceLocator.GetService<IServiceProxyProvider>());
                /// test Parallel
                //var connectionCount = 300000;
                //StartRequest(connectionCount);
                //Console.ReadLine();
            }
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .AddServiceEngine(typeof(SurgingServiceEngine));
                    //option.UseConsulManager(new ConfigInfo("192.168.1.224:32769"));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .ConfigureLogging(logger =>
            {
                logger.AddConfiguration(
                    Surging.Core.CPlatform.AppConfig.GetSection("Logging"));
            })
                       //.UseServer(options => { })
                       .UseServer(options =>
            {
                options.Ip    = "127.0.0.1";
                options.Port  = 9990;
                options.Token = "True";
                options.ExecutionTimeoutInMilliseconds = 30000;
                options.MaxConcurrentRequests          = 200;
                options.NotRelatedAssemblyFiles        = "Centa.Agency.Application.DTO\\w*|StackExchange.Redis\\w*";
            })
                       .UseConsoleLifetime()
                       .Configure(build =>
                                  build.AddCacheFile("${cachepath}|cacheSettings.json", basePath: AppContext.BaseDirectory, optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformFile("${surgingpath}|surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
        private static void Main(string[] args)
        {
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    .AddServiceEngine(typeof(SurgingServiceEngine));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .ConfigureLogging(loggging =>
            {
                loggging.AddConfiguration(
                    AppConfig.GetSection("Logging"));
            })
                       .UseServer(options => { })
                       .UseConsoleLifetime()
                       .Configure(build =>
            {
#if DEBUG
                build.AddCacheFile("${cachePath}|/app/configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|/app/configs/surgingSettings.json", optional: false, reloadOnChange: true);
                build.AddEventBusFile("${eventBusPath}|/app/configs/eventBusSettings.json", optional: false);
                build.AddConsulFile("${consulPath}|/app/configs/consul.json", optional: false, reloadOnChange: true);
#else
                build.AddCacheFile("${cachePath}|configs/cacheSettings.json", optional: false, reloadOnChange: true);
                build.AddCPlatformFile("${surgingPath}|configs/surgingSettings.json", optional: false, reloadOnChange: true);
                build.AddEventBusFile("configs/eventBusSettings.json", optional: false);
                build.AddConsulFile("configs/consul.json", optional: false, reloadOnChange: true);
#endif
            })
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务主机启动成功{DateTime.Now}。");
            }
        }
Esempio n. 9
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime();
                    option.AddRelateService();
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    option.AddRabbitMQAdapt();
                    //option.UseProtoBufferCodec();
                    option.UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       .UseLog4net("Configs/log4net.config")
                       //.UseServer("127.0.0.1", 98)
                       //.UseServer("127.0.0.1", 98,“true”) //自动生成Token
                       //.UseServer("127.0.0.1", 98,“123456789”) //固定密码Token
                       .UseServer(options =>
            {
                // options.IpEndpoint = new IPEndPoint(IPAddress.Any, 98);
                options.Ip    = "127.0.0.1";
                options.Port  = 98;
                options.Token = "True";
                options.ExecutionTimeoutInMilliseconds = 30000;
                options.MaxConcurrentRequests          = 200;
                options.NotRelatedAssemblyFiles        = "Centa.Agency.Application.DTO\\w*|StackExchange.Redis\\w*";
            })
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            var loggerFactory = new LoggerFactory();

            loggerFactory.AddProvider <ConsoleLoggerProvider>();
            Logger.LoggerFactory = loggerFactory;

            var builder = new ServiceHostBuilder();

            builder.ConfigureOptions <ClusterMembershipServiceOptions>(p =>
            {
                p.InsideAddress  = new SlioAddress("0.0.0.0", 64000);
                p.Backlog        = 10;
                p.MaxConnections = 100;
            });
            builder.ConfigureOptions <GatewayMembershipServiceOptions>(p =>
            {
                p.InsideAddress  = new SlioAddress("0.0.0.0", 64001);
                p.Backlog        = 10;
                p.MaxConnections = 100;
                p.Cluster        = new SlioAddress("0.0.0.0", 64000);
            });
            builder.AddSystemTarget <IClusterMembershipService, ClusterMembershipService>();
            builder.AddSystemTarget <IGatewayMembershipService, GatewayMembershipService>();

            builder.AddService <ISayService, SayService>(metadata: new ServiceMetadata()
            {
                ID = 45
            });
            builder.AddService <IHelloService, HelloService>();
            serviceHost = builder.Build();
            serviceHost.Lifecycle.WithStarted(nameof(Program), (token) =>
            {
                var serviceFactory = serviceHost.ServiceFactory;
                var helloService   = serviceFactory.GetSingleService <ISayService>();
                var metadata       = helloService.Metadata;
                var result         = helloService.Say("cxx");
            });

            serviceHost.Start();
            Console.WriteLine("started...");

            Console.ReadLine();
        }
Esempio n. 11
0
        public static async Task Main(string[] args)
        {
            var hostBuilder = new ServiceHostBuilder();

            hostBuilder.Build((hostBuilderConext, serviceCollection) =>
            {
                serviceCollection.AddScoped <ITask, AccountServiceTask>();
            });


            await hostBuilder.StartAsync();

            //Just to Start the Flow
            var serviceCoordinator = hostBuilder.host.Services.GetRequiredService <IServiceCoordinator>();
            await serviceCoordinator.Raise <CartUpdatedEvent>(new ServiceParams { Message = "Startup", Count = 0 });

            Console.WriteLine("Account Service started...");

            await hostBuilder.WaitForShutdownAsync();
        }
Esempio n. 12
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .UseRabbitMQTransport()
                    .AddRabbitMQAdapt()
                    .AddCache()
                    .AddHttpProtocol()
                    .AddServiceEngine(typeof(SurgingServiceEngine));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       .ConfigureLogging(logger =>
            {
                logger.AddConfiguration(
                    Core.CPlatform.AppConfig.GetSection("Logging"));
            })
                       .UseServer(options => { })
                       .UseConsoleLifetime()
                       .UseServiceCache()
                       .Configure(build =>
                                  build.AddCacheFile("${cachepath}|cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformFile("${surgingpath}|surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 13
0
        static async Task Main(string[] args)
        {
            var hostBuilder = new ServiceHostBuilder();

            hostBuilder.Build((hostBuilderConext, serviceCollection) =>
            {
            });

            await hostBuilder.StartAsync();

            //Just to Start the Flow
            var serviceCoordinator = hostBuilder.host.Services.GetRequiredService <IServiceCoordinator>();

            Console.WriteLine("External Service started...");
            for (int i = 0; i < 10; i++)
            {
                await serviceCoordinator.Raise <OrderCreatedEvent>(new ServiceParams { Message = "Startup", Count = 0 });
            }

            await hostBuilder.StartAsyncAndWait();
        }
Esempio n. 14
0
 /// <summary>
 /// Interprets any <see cref="OperationCanceledException" /> thrown by the service
 /// as <c>RequestCancelled</c> error per definition in Language Server Protocol.
 /// </summary>
 public static void UseCancellationHandling(this ServiceHostBuilder builder)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     builder.Intercept(async(context, next) =>
     {
         try
         {
             await next();
         }
         catch (OperationCanceledException ex)
         {
             if (ex.CancellationToken == context.CancellationToken ||
                 ex.CancellationToken == CancellationToken.None)
             {
                 context.Response.Error = new ResponseError(Utility.RequestCancelledErrorCode, ex.Message);
             }
         }
     });
 }
Esempio n. 15
0
        static async Task Debug()
        {
            var tcpAddress = $"tcp://localhost:9999/tcpTest";

            var host = new ServiceHostBuilder <Service>(InstanceMode.PerConnection)
                       .AddTcpServer(tcpAddress, options =>
            {
                options.ReceiveBufferSize = 40;
                options.ReceiveTimeout    = TimeSpan.FromMinutes(60);
                options.Timeout           = TimeSpan.FromMinutes(60);
                options.FramingProtocol   = FramingProtocol.ConcurrentFragments;
            })
                       .WithConsoleLogger(LogLevel.Trace)
                       .CreateHost();
            await host.Open();

            var client = await new ConnectionBuilder <IService>()
                         .WithTcpTransport(tcpAddress, options =>
            {
                options.SendBufferSize    = 45;
                options.KeepAliveInterval = TimeSpan.FromMinutes(50);
                options.ReceiveTimeout    = TimeSpan.FromMinutes(60);
                options.Timeout           = TimeSpan.FromMinutes(60);
                options.FramingProtocol   = FramingProtocol.ConcurrentFragments;
            })
                         .WithConsoleLogger(LogLevel.None)
                         .CreateConnection();

            var msg = await client.Echo("test");

            Console.WriteLine(msg);

            await host.Close();

            ((IConnection)client).Close();

            Console.WriteLine("Test Done!");
        }
Esempio n. 16
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(option =>
            {
                option.Initialize();
                option.RegisterServices();
                option.RegisterRepositories();
                option.RegisterModules();
                option.RegisterServiceBus();
            })
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime();
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    option.AddRabbitMQAdapt();
                    //option.UseProtoBufferCodec();
                    option.UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       .UseServer("127.0.0.1", 98)
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient()
                    .AddCache();
                    option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .UseNLog(LogLevel.Trace, "NLog.config")// 使用NLog 记录日志
                       .Configure(build =>
                                  build.AddEventBusFile("Configs/eventBusSettings.json", optional: false))
                       .Configure(build =>
                                  build.AddCacheFile("Configs/cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformFile("${surgingpath}|Configs/surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseClient()
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Startup.Test(ServiceLocator.GetService <IServiceProxyFactory>());
                //Startup.TestRabbitMq(ServiceLocator.GetService<IServiceProxyFactory>());
                // Startup.TestForRoutePath(ServiceLocator.GetService<IServiceProxyProvider>());
                /// test Parallel
                //var connectionCount = 200000;
                //StartRequest(connectionCount);
                //Console.ReadLine();
            }
        }
Esempio n. 18
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient();
                    option.AddClientIntercepted(typeof(CacheProviderInterceptor));
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    //option.UseProtoBufferCodec();
                    option.UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .UseProxy()
                       .UseLog4net()
                       .UseClient()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Startup.Test(ServiceLocator.GetService <IServiceProxyFactory>());
                //Startup.TestRabbitMq(ServiceLocator.GetService<IServiceProxyFactory>());
                // Startup.TestForRoutePath(ServiceLocator.GetService<IServiceProxyProvider>());
                /// test Parallel
                //var connectionCount = 250000;
                //var requestThread = new Thread(() => StartRequest(connectionCount)) { IsBackground = true };
                //requestThread.Start();
                //Console.ReadLine();
            }
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime();
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    option.AddRabbitMQAdapt();
                    //option.UseProtoBufferCodec();
                    option.UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       .UseLog4net("Configs/log4net.config")
                       //.UseServer("127.0.0.1", 98)
                       //.UseServer("127.0.0.1", 98,“true”) //自动生成Token
                       //.UseServer("127.0.0.1", 98,“123456789”) //固定密码Token
                       .UseServer(options => {
                options.Ip   = "127.0.0.1";
                options.Port = 98;
                options.ExecutionTimeoutInMilliseconds = 30000;
            })
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 20
0
        static void Main(string[] args)
        {
            Console.WriteLine("Server, Hello World!");

            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.RegisterType <MessagePackTransportMessageCodecFactory>().As <ITransportMessageCodecFactory>().SingleInstance();
                builder.RegisterType(typeof(HttpServiceExecutor)).As(typeof(IServiceExecutor)).Named <IServiceExecutor>("tcp").SingleInstance();
                builder.Register(provider =>
                {
                    return(new DotNettyServerMessageListener(provider.Resolve <ILogger <DotNettyServerMessageListener> >(),
                                                             provider.Resolve <ITransportMessageCodecFactory>()));
                }).SingleInstance();
                builder.Register(provider =>
                {
                    var serviceExecutor = provider.ResolveKeyed <IServiceExecutor>("tcp");
                    var messageListener = provider.Resolve <DotNettyServerMessageListener>();
                    return(new DotNettyTransportHost(async endPoint =>
                    {
                        await messageListener.StartAsync(endPoint);
                        return messageListener;
                    }, serviceExecutor));
                }).As <ITransportHost>();
            })
                       .UseServer() // 指定监听的端口
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }

            Console.ReadLine();
        }
Esempio n. 21
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(option =>
            {
                option.Initialize();
                option.RegisterServices();
                option.RegisterRepositories();
                option.RegisterModules();
            })
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient();
                    option.AddClientIntercepted(typeof(CacheProviderInterceptor));
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));
                    option.UseDotNettyTransport();
                    option.UseRabbitMQTransport();
                    //option.UseProtoBufferCodec();
                    option.UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .UseClient()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Startup.Test(ServiceLocator.GetService <IServiceProxyFactory>());
                Startup.TestRabbitMq();
            }
        }
Esempio n. 22
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddClient()
                    .AddClientIntercepted(typeof(CacheProviderInterceptor))
                    .AddCache();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .Configure(build =>
                                  build.AddEventBusFile("eventBusSettings.json", optional: false))
                       .Configure(build =>
                                  build.AddCacheFile("cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformFile("${surgingpath}|surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseNLog(LogLevel.Error)
                       .UseClient()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Startup.Test(ServiceLocator.GetService <IServiceProxyFactory>());
                //Startup.TestRabbitMq(ServiceLocator.GetService<IServiceProxyFactory>());
                // Startup.TestForRoutePath(ServiceLocator.GetService<IServiceProxyProvider>());
                /// test Parallel
                //var connectionCount = 200000;
                //StartRequest(connectionCount);
                //Console.ReadLine();
            }
        }
Esempio n. 23
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .UseConsulManager(new ConfigInfo("10.0.3.27:8500", reloadOnChange: true))
                    .UseDotNettyTransport()
                    .UseRabbitMQTransport()
                    .AddRabbitMQAdapt()
                    .AddCache()
                    //.UseKafkaMQTransport(kafkaOption =>
                    //{
                    //    kafkaOption.Servers = "127.0.0.1";
                    //    kafkaOption.LogConnectionClose = false;
                    //    kafkaOption.MaxQueueBuffering = 10;
                    //    kafkaOption.MaxSocketBlocking = 10;
                    //    kafkaOption.EnableAutoCommit = false;
                    //})
                    //.AddKafkaMQAdapt()
                    //.UseProtoBufferCodec()
                    .UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       .SubscribeAt()
                       // .UseLog4net(LogLevel.Error, "Configs/log4net.config")
                       .UseNLog(LogLevel.Error, "Config/NLog.config")
                       //.UseServer("127.0.0.1", 98)
                       //.UseServer("127.0.0.1", 98,“true”) //自动生成Token
                       //.UseServer("127.0.0.1", 98,“123456789”) //固定密码Token
                       .UseServer(options =>
            {
                //  options.IpEndpoint = new IPEndPoint(IPAddress.Any, 98);
                //options.Port = 98;
                // options.Ip = "127.0.0.1";
                options.Token = "True";
                options.ExecutionTimeoutInMilliseconds = 30000;
                options.MaxConcurrentRequests          = 200;
            })
                       .UseServiceCache()
                       .Configure(build =>
                                  build.AddEventBusFile("eventBusSettings.json", optional: false))
                       .Configure(build =>
                                  build.AddCacheFile("cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformFile("surgingSettings.json", optional: false, reloadOnChange: true))
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            using (host.Run())
            {
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
        }
Esempio n. 24
0
        static void Main(string[] args)
        {
            string consul = ConfigHelper.AllConfigInfo["ConsulSettings"]["IpAddrs"].ToString();

            JToken CrawSettings = ConfigHelper.AllConfigInfo["CrawSettings"];

            JToken RebbitMqSettings     = ConfigHelper.AllConfigInfo["RebbitMqSettings"];
            JToken HostSettings         = ConfigHelper.AllConfigInfo["HostSettings"];
            JToken MongoSettings        = ConfigHelper.AllConfigInfo["MongoSettings"];
            JToken BonusPoolSetting     = ConfigHelper.AllConfigInfo["BonusPoolSetting"];
            JToken Auto_CollectSettings = ConfigHelper.AllConfigInfo["Auto_CollectSettings"];

            string Sports_SchemeJobSeconds = ConfigHelper.AllConfigInfo["Sports_SchemeJobSeconds"].ToString();
            var    mongoConfig             = new kason.Sg.Core.Mongo.ConfigInfo();

            mongoConfig.connectionString = MongoSettings["connectionString"].ToString();
            mongoConfig.SingleInstance   = bool.Parse(MongoSettings["SingleInstance"].ToString());
            mongoConfig.dbName           = MongoSettings["dbName"].ToString();

            //初始化数据
            Lottery.CrawGetters.InitConfigInfo.MongoSettings = MongoSettings;

            Lottery.CrawGetters.InitConfigInfo.MongoTableSettings = MongoSettings["TableNamesSettings"];
            Lottery.CrawGetters.InitConfigInfo.BonusPoolSetting   = CrawSettings["BonusPoolSettings"];
            Lottery.CrawGetters.InitConfigInfo.MatchSettings      = CrawSettings["MatchSettings"];
            ServiceHelper.MatchSettings = CrawSettings["MatchSettings"];
            Lottery.CrawGetters.InitConfigInfo.NumLettory_SleepTimeSpanSettings = CrawSettings["NumLettory_SleepTimeSpanSettings"];

            //JToken ORMSettings = ConfigHelper.AllConfigInfo["ORMSettings"];
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .UseMongo(mongoConfig)
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .UseConsulManager(new Kason.Sg.Core.Consul.Configurations.ConfigInfo(consul,
                                                                                         "MagAndCraw/serviceRoutes/",
                                                                                         "MagAndCraw/serviceSubscribers/",
                                                                                         "MagAndCraw/serviceCommands/",
                                                                                         "MagAndCraw/serviceCaches/")
                    {
                        ReloadOnChange = true
                    })
                    .UseDotNettyTransport()
                    //.UseRabbitMQTransport()
                    // .AddRabbitMQAdapt()

                    // .AddCache()
                    //.UseKafkaMQTransport(kafkaOption =>
                    //{
                    //    kafkaOption.Servers = "127.0.0.1";
                    //    kafkaOption.LogConnectionClose = false;
                    //    kafkaOption.MaxQueueBuffering = 10;
                    //    kafkaOption.MaxSocketBlocking = 10;
                    //    kafkaOption.EnableAutoCommit = false;
                    //})
                    //.AddKafkaMQAdapt()
                    //.UseProtoBufferCodec()
                    .UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       // .SubscribeAt()
                       // .UseLog4net(LogLevel.Error, "Config/log4net.config")
                       // .UseNLog(LogLevel.Error, "Config/NLog.config")
                       .UseLog4net("Config/log4net.config")
                       //.UseServer("127.0.0.1", 98)
                       //.UseServer("127.0.0.1", 98,“true”) //自动生成Token
                       //.UseServer("127.0.0.1", 98,“123456789”) //固定密码Token
                       .UseServer(options =>
            {
                //  options.IpEndpoint = new IPEndPoint(IPAddress.Any, 98);
                // options.Port = 10098;
                // options.Ip = "127.0.0.1";
                options.Token = "True";
                options.ExecutionTimeoutInMilliseconds = 30000;

                options.MaxConcurrentRequests = 2000;
            })
                       // .UseServiceCache()
                       //.Configure(build =>
                       //build.AddEventBusJson(RebbitMqSettings))
                       //.Configure(build =>
                       //build.AddCacheFile("cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformJSON(HostSettings))
                       // .UseProxy()
                       .UseStartup <Startup>()
                       .Build();

            //string url = "https://1680660.com/smallSix/queryLotteryDate.do?ym=2019-04";
            //var list= Lottery.CrawGetters.WinNumberGetter_1680660.GetIssuseNum();

            //Console.WriteLine(string.Join(Environment.NewLine, list));
            //var list = JsonHelper.Deserialize<List<KaSon.FrameWork.ORM.OrmConfigInfo>>(ORMSettings.ToString());
            //DbProvider.InitConfigJson(list);

            //WinNumberGetter_1680660.winNum();

            using (host.Run())
            {
                Console.WriteLine($"管理、采集,开奖服务端启动成功,{DateTime.Now}。");
                Lottery.CrawGetters.InitConfigInfo.Init(CrawSettings);
                Lottery.CrawGetters.InitConfigInfo.logFactory    = ServiceLocator.GetService <ILoggerFactory>();
                KaSon.FrameWork.Common.InitConfigInfo.logFactory = ServiceLocator.GetService <ILoggerFactory>();
                //AutoTaskServices.AutoCaheData(int.Parse(Sports_SchemeJobSeconds));
            }
            // 初始化内存期号 k_todo,可用彩种类型,执行一次
            // LotteryGameManager lotGm = new LotteryGameManager();
            // lotGm.StartInitData();
            //new Sports_Business().Test();



            Task.Factory.StartNew(async delegate
            {
                var obj = await Start_ConfigGameType(Auto_CollectSettings);
            });
            //RedisMatchBusiness.ReloadCurrentBJDCMatch();
            Clear();
        }
Esempio n. 25
0
 protected override ServiceHostBuilder Configure(ServiceHostBuilder serviceHostBuilder) =>
 serviceHostBuilder.UseTcp(Configure(new TcpSettings(GetEndPoint())));
Esempio n. 26
0
        static async Task EndToEndTest()
        {
            var httpAddress = $"http://localhost/test";
            var tcpAddress  = $"tcp://localhost:9999/tcpTest";

            var host = new ServiceHostBuilder <Service>(InstanceMode.PerConnection)
                       .WithCallback <ICallback>()
                       //add websocket server
                       .AddWebSocketServer(httpAddress, options => options.ReceiveBufferSize = 1024)
                       //add tcp server
                       .AddTcpServer(tcpAddress, options =>
            {
                options.ReceiveBufferSize = 1024;
            })
                       .WithMessagePackSerializer() //it is the default
                       .WithConsoleLogger()         //default is empty
                       .CreateHost();

            host.ServiceInstanceCreated += service =>
            {
                //configure service instances
                Console.WriteLine("Instance created");
            };

            await host.Open();

            Console.WriteLine("Host is open");

            var clientBuilder1 = new DuplexConnectionBuilder <IService, MyCallback>(InstanceMode.PerConnection)
                                 .WithWebSocketTransport(httpAddress, options =>
            {
                //set connection options
                options.ReceiveBufferSize = 1024;
            })
                                 .WithMessagePackSerializer()
                                 .WithConsoleLogger();

            clientBuilder1.CallbackInstanceCreated += obj =>
            {
                Console.WriteLine($"Created callback of type {obj.GetType()}");
                var callback = (MyCallback)obj;
                //config the callback instance
            };

            var client1 = await clientBuilder1.CreateConnection();

            var client2 = await clientBuilder1.CreateConnection();

            var msg = await client1.Echo("From Client 1");

            Console.WriteLine(msg);

            msg = await client2.Echo("From Client 2");

            Console.WriteLine(msg);

            msg = await client1.CallMeBack();

            Console.WriteLine(msg);

            var client3 = await clientBuilder1.CreateConnection();

            client3.FireAndForget("server is here now");
            Console.WriteLine("client3 is here now"); //this should appear first

            var clientBuilder2 = new ConnectionBuilder <IOtherService>()
                                 .WithWebSocketTransport(httpAddress)
                                 .WithConsoleLogger();

            var client4 = await clientBuilder2.CreateConnection();

            msg = await client4.Echo("It is another Echo"); //another interface same Echo signature

            Console.WriteLine(msg);

            await Task.Delay(6000);

            Console.WriteLine("now with tcp");

            var tcpCient = await new DuplexConnectionBuilder <IService, MyCallback>(InstanceMode.Single)
                           .WithTcpTransport(tcpAddress)
                           .WithConsoleLogger()
                           .CreateConnection();

            msg = await tcpCient.Echo("From TCP Client");

            Console.WriteLine(msg);

            await tcpCient.CallMeBack();

            //how to close connection, the listening will show exception that has no effect
            //await ((IConnection)client4).Close();
        }
Esempio n. 27
0
        //monitor response time, cpu, and memory //WebSockets: 1kb msg => 5000 request/second on Corei5 4GB RAM
        //monitor response time, cpu, and memory //TCP: 1kb msg => 8000 request/second on Corei5 4GB RAM
        static async Task Profile(SocketType socketType)
        {
            var httpAddress = $"http://localhost/test";
            var tcpAddress  = "tcp://localhost:9988";

            var hostBuilder = new ServiceHostBuilder <Service>(InstanceMode.PerCall)
                              .WithCallback <ICallback>()
                              .WithMessagePackSerializer() //it is the default
                              .WithConsoleLogger();        //default is empty

            ConnectionBuilder <IService> clientBuilder = null;

            if (socketType == SocketType.WebSocket)
            {
                hostBuilder.AddWebSocketServer(httpAddress, options =>
                {
                    //if you set this on WebSocket,
                    // it must be less or equal to the client's SendBufferSize, default 4KB
                    options.ReceiveBufferSize = 1024 * 2;
                });

                clientBuilder = new ConnectionBuilder <IService>()
                                .WithWebSocketTransport(httpAddress, options =>
                {
                    //if you set this on WebSocket,
                    // it must be less or equal to the server's ReceiveBufferSize, default 4KB
                    options.SendBufferSize = 1024 * 2;
                });
            }
            else if (socketType == SocketType.TCP)
            {
                hostBuilder.AddTcpServer(tcpAddress, options =>
                {
                    //if you set this on WebSocket,
                    // it must be less or equal to the client's SendBufferSize, default 4KB
                    options.ReceiveBufferSize = 1024 * 2;
                });

                clientBuilder = new ConnectionBuilder <IService>()
                                .WithTcpTransport(tcpAddress, options =>
                {
                    //if you set this on WebSocket,
                    // it must be less or equal to the server's ReceiveBufferSize, default 4KB
                    options.SendBufferSize = 1024 * 2;
                });
            }

            var host = hostBuilder.CreateHost();

            await host.Open();

            Console.WriteLine("Host is open");

            var client = await clientBuilder.CreateConnection();

            //1 KB, the actual message on the wire will be more than 1 KB (depends on method type, name, and payload)
            var msg = new string('*', 1000);

            for (int j = 0; j < 100; j++)
            {
                await Task.Delay(1000);

                var sw = Stopwatch.StartNew();

                for (int i = 0; i < 50000; i++)
                {
                    var resp = await client.Echo(msg);
                }

                sw.Stop();
                Console.WriteLine($">> {sw.ElapsedMilliseconds}");
            }
        }
        public void Build_adds_support_for_dependency_injection(ServiceHostBuilder sut)
        {
            var host = sut.Build(typeof(TestService));

            Assert.That(host.Description.Behaviors, Has.Exactly(1).InstanceOf <DependencyInjectionServiceBehavior>());
        }
Esempio n. 29
0
        static void Main(string[] args)
        {
            string consul           = ConfigHelper.AllConfigInfo["ConsulSettings"]["IpAddrs"].ToString();
            string Token            = ConfigHelper.AllConfigInfo["ConsulSettings"]["Token"].ToString();
            JToken RebbitMqSettings = ConfigHelper.AllConfigInfo["RebbitMqSettings"];
            JToken HostSettings     = ConfigHelper.AllConfigInfo["HostSettings"];
            //public ConfigInfo(string connectionString,
            //    string routePath = "services/serviceRoutes/", string subscriberPath = "services/serviceSubscribers/",
            //    string commandPath = "services/serviceCommands/", string cachePath = "services/serviceCaches/", bool reloadOnChange = false);
            //var config = new ConfigInfo(consul, "TEST/serviceRoutes/", "TEST/serviceSubscribers/",
            //    "TEST/serviceCommands/", "TEST/serviceCaches/",
            //    reloadOnChange: true);
            var config = new ConfigInfo(consul, reloadOnChange: true);

            config.Token = Token;
            //  JToken ORMSettings = ConfigHelper.AllConfigInfo["ORMSettings"];
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var host = new ServiceHostBuilder()
                       .RegisterServices(builder =>
            {
                builder.AddMicroService(option =>
                {
                    option.AddServiceRuntime()
                    .AddRelateService()
                    .AddConfigurationWatch()
                    //option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181"));
                    .UseConsulManager(config)
                    .UseDotNettyTransport()
                    //.UseRabbitMQTransport()
                    //.AddRabbitMQAdapt()

                    //.AddCache()
                    //.UseKafkaMQTransport(kafkaOption =>
                    //{
                    //    kafkaOption.Servers = "127.0.0.1";
                    //    kafkaOption.LogConnectionClose = false;
                    //    kafkaOption.MaxQueueBuffering = 10;
                    //    kafkaOption.MaxSocketBlocking = 10;
                    //    kafkaOption.EnableAutoCommit = false;
                    //})
                    //.AddKafkaMQAdapt()
                    //.UseProtoBufferCodec()
                    .UseMessagePackCodec();
                    builder.Register(p => new CPlatformContainer(ServiceLocator.Current));
                });
            })
                       // .SubscribeAt()
                       .UseLog4net(LogLevel.Error, "Config/log4net.config")
                       // .UseNLog(LogLevel.Error, "Config/NLog.config")
                       //.UseServer("127.0.0.1", 98)
                       //.UseServer("127.0.0.1", 98,“true”) //自动生成Token
                       //.UseServer("127.0.0.1", 98,“123456789”) //固定密码Token
                       .UseServer(options =>
            {
                //  options.IpEndpoint = new IPEndPoint(IPAddress.Any, 98);
                // options.Port = 10098;
                // options.Ip = "127.0.0.1";
                //options.Token
                options.Token = "123456789";
                options.ExecutionTimeoutInMilliseconds = 30000;
                options.MaxConcurrentRequests          = 2000;
            })
                       // .UseServiceCache()
                       //.Configure(build =>
                       //build.AddEventBusJson(RebbitMqSettings))
                       //.Configure(build =>
                       //build.AddCacheFile("cacheSettings.json", optional: false, reloadOnChange: true))
                       .Configure(build =>
                                  build.AddCPlatformJSON(HostSettings))
                       .UseProxy()
                       .UseStartup <Startup>()
                       .Build();


            //var list = JsonHelper.Deserialize<List<KaSon.FrameWork.ORM.OrmConfigInfo>>(ORMSettings.ToString());
            //DbProvider.InitConfigJson(list);

            using (host.Run())
            {
                #region 初始化配置
                InitConfigInfo.logFactory = ServiceLocator.GetService <ILoggerFactory>();

                #endregion
                Console.WriteLine($"服务端启动成功,{DateTime.Now}。");
            }
            Console.ReadKey();
        }
        public void Build_adds_base_addresses(ServiceHostBuilder sut, Uri baseAddress)
        {
            var host = sut.Build(typeof(TestService), baseAddress);

            Assert.That(host.BaseAddresses, Contains.Item(baseAddress));
        }