예제 #1
0
        public static void Configure(HostConfigurator config)
        {
            // http://docs.topshelf-project.com/en/latest/
            Logger.Debug("Configuring windows service");
            config.Service <WindowsService>(ConfigureServiceClass);

            // prompt for credentials - Sys Admins will need to type password for SchTasks.Admin user
            config.RunAsPrompt();

            config.SetDescription("Cyrus MicroServices Background Processing (Multiple Mini-Apps)");
            config.SetDisplayName("Cyrus MicroServices");
            config.SetServiceName("Cyrus.MicroServices");

            //TODO: windows service settings
            //config.SetDescription(AppSettings.Default.WindowsService.Description);
            //config.SetDisplayName(AppSettings.Default.WindowsService.DisplayName);
            //config.SetServiceName(AppSettings.Default.WindowsService.Name);

            config.StartAutomatically();
            config.UseNLog();

            config.EnableServiceRecovery(rc =>
            {
                rc.RestartService(delayInMinutes: 2);
                //rc.RestartService(AppSettings.Default.WindowsService.RecoverRestartAfterMins);
            });

            Logger.Debug("Windows service configured");
        }
        public static void Configure(HostConfigurator config)
        {
            // http://docs.topshelf-project.com/en/latest/
            Logger.Debug("Configuring windows service");
            config.Service<WindowsService>(ConfigureServiceClass);

            // prompt for credentials - Sys Admins will need to type password for SchTasks.Admin user
            config.RunAsPrompt();

            config.SetDescription("Cyrus MicroServices Background Processing (Multiple Mini-Apps)");
            config.SetDisplayName("Cyrus MicroServices");
            config.SetServiceName("Cyrus.MicroServices");

            //TODO: windows service settings
            //config.SetDescription(AppSettings.Default.WindowsService.Description);
            //config.SetDisplayName(AppSettings.Default.WindowsService.DisplayName);
            //config.SetServiceName(AppSettings.Default.WindowsService.Name);

            config.StartAutomatically();
            config.UseNLog();

            config.EnableServiceRecovery(rc =>
            {
                rc.RestartService(delayInMinutes: 2);
                //rc.RestartService(AppSettings.Default.WindowsService.RecoverRestartAfterMins);
            });

            Logger.Debug("Windows service configured");
        }
예제 #3
0
        private void SetServiceRunAs(HostConfigurator x)
        {
            switch (ServiceRunAs)
            {
            case ServiceRunAs.LocalService:
                x.RunAsLocalService();
                break;

            case ServiceRunAs.LocalSystem:
                x.RunAsLocalSystem();
                break;

            case ServiceRunAs.NetworkService:
                x.RunAsNetworkService();
                break;

            case ServiceRunAs.Prompt:
                x.RunAsPrompt();
                break;

            case ServiceRunAs.UserLogin:
                x.RunAs(UserName, UserPassword);
                break;
            }
        }
예제 #4
0
        private void CreateServiceConfiguration(HostConfigurator x)
        {
            

            var config = container.Resolve<RendezvousConfiguration>();

            x.Service<IRendezvousService>(s =>
                                          {
                                              s.ConstructUsing(_ => CreateServiceInstance());
                                              s.WhenStarted(rs => rs.Start());
                                              s.WhenStopped(ServiceStop);
                                          });
            x.RunAsPrompt();
            x.SetServiceName(config.ServiceName);
            x.SetDisplayName(config.ServiceName);
            x.SetDescription($"{config.ServiceName} Service");
        }
예제 #5
0
        private static void SetRunAs(HostConfigurator host, T businessService)
        {
            switch (businessService.RunAs)
            {
            case ServiceRunAs.LocalService:
                host.RunAsLocalService();
                break;

            case ServiceRunAs.LocalSystem:
                host.RunAsLocalSystem();
                break;

            case ServiceRunAs.NetworkService:
                host.RunAsNetworkService();
                break;

            case ServiceRunAs.Prompt:
                host.RunAsPrompt();
                break;
            }
        }
예제 #6
0
        /// <summary>
        /// Configure
        /// </summary>
        /// <param name="hostCfg"></param>
        /// <returns></returns>
        public HostConfigurator Configure(ref HostConfigurator hostCfg)
        {
            #region 设置运行模式

            switch (RunAs)
            {
            case ServiceAccount.LocalService:
                hostCfg.RunAsLocalService();
                break;

            case ServiceAccount.LocalSystem:
                hostCfg.RunAsLocalSystem();
                break;

            case ServiceAccount.NetworkService:
                hostCfg.RunAsNetworkService();
                break;

            case ServiceAccount.User:
                hostCfg.RunAs(UserName, Password);
                break;

            default:
                hostCfg.RunAsPrompt();
                break;
            }

            #endregion

            #region 设置启动模式

            switch (StartMode)
            {
            case HostStartMode.AutomaticDelayed:
                hostCfg.StartAutomaticallyDelayed();
                break;

            case HostStartMode.Disabled:
                break;

            case HostStartMode.Manual:
                hostCfg.StartManually();
                break;

            default:
                hostCfg.StartAutomatically();
                break;
            }

            #endregion

            #region 设置服务基础信息

            hostCfg.SetServiceName(ServiceName);
            hostCfg.SetInstanceName(InstanceName);
            hostCfg.SetDescription(ServiceDescription);
            hostCfg.SetDisplayName(ServiceDisplayName);

            #endregion
            return(hostCfg);
        }
예제 #7
0
 public void ApplyTo(HostConfigurator configurator)
 {
     configurator.RunAsPrompt();
 }
예제 #8
0
 public void ApplyTo(HostConfigurator configurator)
 {
     configurator.RunAsPrompt();
 }