public static void Run(StartType type) { switch (type) { case StartType.BaseService: mAppHost = new ServiceHost(typeof(BaseService)); //初始化连接池,默认10分钟清理连接 ClientLinkPoolCache.Init(true, 200, 30, 600, "wcfserver", 30); AppGlobal.AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; AppGlobal.appType = AppType.WCF; AppGlobal.IsSaas = System.Configuration.ConfigurationManager.AppSettings["IsSaas"] == "true" ? true : false; AppGlobal.AppStart(); ClientManage.IsHeartbeat = HostSettingConfig.GetValue("heartbeat") == "1" ? true : false; ClientManage.HeartbeatTime = Convert.ToInt32(HostSettingConfig.GetValue("heartbeattime")); ClientManage.IsMessage = HostSettingConfig.GetValue("message") == "1" ? true : false; ClientManage.MessageTime = Convert.ToInt32(HostSettingConfig.GetValue("messagetime")); ClientManage.IsCompressJson = HostSettingConfig.GetValue("compress") == "1" ? true : false; ClientManage.IsEncryptionJson = HostSettingConfig.GetValue("encryption") == "1" ? true : false; ClientManage.IsToken = HostSettingConfig.GetValue("token") == "1" ? true : false; ClientManage.serializeType = (SerializeType)Convert.ToInt32(HostSettingConfig.GetValue("serializetype")); ClientManage.IsOverTime = HostSettingConfig.GetValue("overtime") == "1" ? true : false; ClientManage.OverTime = Convert.ToInt32(HostSettingConfig.GetValue("overtimetime")); ClientManage.StartHost(); mAppHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "数据服务启动完成"); break; case StartType.FileService: AppGlobal.AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; mFileHost = new ServiceHost(typeof(FileService)); mFileHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "文件服务启动完成"); break; case StartType.RouterBaseService: mRouterHost = new ServiceHost(typeof(RouterBaseService)); RouterManage.Start(); mRouterHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "数据路由服务启动完成"); break; case StartType.RouterFileService: mFileRouterHost = new ServiceHost(typeof(RouterFileService)); mFileRouterHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "文件路由服务启动完成"); break; case StartType.SuperClient: SuperClient.CreateSuperClient(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "超级客户端启动完成"); break; case StartType.MiddlewareTask: MiddlewareTask.StartTask(); //开启定时任务 MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "定时任务启动完成"); break; case StartType.PublishService: //订阅 PublishServiceManage.InitPublishService(); PublishSubManager.StartPublish(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "发布订阅服务完成"); break; case StartType.MongoDB: MongodbManager.StartDB(); //开启MongoDB MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "MongoDB启动完成"); break; case StartType.Nginx: NginxManager.StartWeb(); //开启Nginx MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "Nginx启动完成"); break; case StartType.KillAllProcess: MongodbManager.StopDB(); //停止MongoDB 清理掉所有子进程,因为主进程关闭子进程不关闭的话,占用的端口号一样不会释放 NginxManager.StopWeb(); break; } }
public static void Run(StartType type) { switch (type) { case StartType.BaseService: mAppHost = new ServiceHost(typeof(BaseService)); //初始化连接池,默认10分钟清理连接 ClientLinkPoolCache.Init(true, 200, 30, 600, "wcfserver", 30); AppGlobal.AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; AppGlobal.appType = AppType.WCF; AppGlobal.IsSaas = HostSettingConfig.GetValue("issaas") == "1" ? true : false; AppGlobal.AppStart(); ClientManage.IsHeartbeat = HostSettingConfig.GetValue("heartbeat") == "1" ? true : false; ClientManage.HeartbeatTime = Convert.ToInt32(HostSettingConfig.GetValue("heartbeattime")); ClientManage.StartHost(); mAppHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "数据服务启动完成"); break; case StartType.FileService: AppGlobal.AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; mFileHost = new ServiceHost(typeof(FileService)); mFileHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "文件服务启动完成"); break; case StartType.HttpService: //初始化连接池,默认10分钟清理连接 ClientLinkPoolCache.Init(true, 200, 30, 600, "httpserver", 30); AppGlobal.AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; mHttpHost = new WebServiceHost(typeof(HttpService)); mHttpHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "Http服务启动完成"); break; case StartType.RouterBaseService: mRouterHost = new ServiceHost(typeof(RouterBaseService)); RouterManage.Start(); mRouterHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "路由数据服务启动完成"); break; case StartType.RouterFileService: mFileRouterHost = new ServiceHost(typeof(RouterFileService)); mFileRouterHost.Open(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "路由文件服务启动完成"); break; case StartType.SuperClient: SuperClient.Start(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "超级客户端启动完成"); PublisherManage.Start(); SubscriberManager.Start(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "发布订阅启动完成"); DistributedCacheManage.Start(); DistributedCacheClient.Start(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "分布式缓存启动完成"); UpgradeManage.Start(); UpgradeClient.Start(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "升级包管理启动完成"); MonitorTirggerManage.Start(); MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "监视触发器启动完成"); break; case StartType.MiddlewareTask: MiddlewareTask.StartTask(); //开启定时任务 MiddlewareLogHelper.WriterLog(LogType.MidLog, true, Color.Blue, "定时任务启动完成"); break; } }