コード例 #1
0
        private void AddProcessInstaller([NotNull] IWindowsServiceConfiguration configuration)
        {
            var processInstaller = new ServiceProcessInstaller();

            switch (configuration.LogonAs)
            {
            case WindowsServiceConfigurationLogonAs.LocalSystem:
                processInstaller.Account = ServiceAccount.LocalSystem;
                break;

            case WindowsServiceConfigurationLogonAs.NetworkService:
                processInstaller.Account = ServiceAccount.NetworkService;
                break;

            case WindowsServiceConfigurationLogonAs.SpecificUser:
                processInstaller.Account  = ServiceAccount.User;
                processInstaller.Username = configuration.LogonAsUsername;
                processInstaller.Password = configuration.LogonAsPassword;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Installers.Add(processInstaller);
        }
コード例 #2
0
        private void AddServiceInstaller([NotNull] IWindowsServiceConfiguration configuration)
        {
            var serviceInstaller = new ServiceInstaller
            {
                ServiceName = configuration.ServiceName,
                Description = configuration.Description,
                DisplayName = configuration.DisplayName
            };

            switch (configuration.StartType)
            {
            case WindowsServiceConfigurationStartType.Automatic:
                serviceInstaller.StartType        = ServiceStartMode.Automatic;
                serviceInstaller.DelayedAutoStart = configuration.DelayedStart;
                break;

            case WindowsServiceConfigurationStartType.Disabled:
                serviceInstaller.StartType = ServiceStartMode.Disabled;
                break;

            case WindowsServiceConfigurationStartType.Manual:
                serviceInstaller.StartType = ServiceStartMode.Manual;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Installers.Add(serviceInstaller);
        }
コード例 #3
0
 public DefaultWindowsServiceStarter(IWindowsService windowsWindowsService, IWindowsServiceConfiguration windowsServiceConfiguration, TClient client)
 {
     Client         = client;
     WindowsService = windowsWindowsService;
     Environment    = new Dictionary <string, object> {
         { Owin.StartParameters, windowsServiceConfiguration.StartParameters }
     };
 }
コード例 #4
0
 public UninstallWindowsServiceCommand(
     [NotNull] IWindowsServiceConfiguration configuration, [NotNull] IInstallContextProvider installContextProvider,
     [NotNull] IPersistentInstallState persistentInstallState)
 {
     _Configuration          = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _InstallContextProvider = installContextProvider ?? throw new ArgumentNullException(nameof(installContextProvider));
     _PersistentInstallState = persistentInstallState ?? throw new ArgumentNullException(nameof(persistentInstallState));
 }
コード例 #5
0
 public RunAsServiceCommand(
     [NotNull] ILogger logger, [NotNull] IWindowsServiceConfiguration configuration,
     [NotNull] IBackgroundServicesManager backgroundServicesManager,
     [NotNull] IApplicationLifetimeManager applicationLifetimeManager)
 {
     _Logger                     = logger ?? throw new ArgumentNullException(nameof(logger));
     _Configuration              = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _BackgroundServicesManager  = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager));
     _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager));
 }
コード例 #6
0
        public WindowsServiceInstaller([NotNull] IWindowsServiceConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            AddProcessInstaller(configuration);
            AddServiceInstaller(configuration);
        }
コード例 #7
0
ファイル: WindowsService.cs プロジェクト: bitdiff/synoptic
        public WindowsService(IServiceDaemon daemon, IWindowsServiceConfiguration configuration)
        {
            if (configuration == null)
                throw new ArgumentNullException("configuration");

            if (configuration.ServiceName == null)
                throw new ArgumentNullException("configuration.ServiceName");

            _daemon = daemon;
            _configuration = configuration;

            EventLog.Log = "Application";
            ServiceName = _configuration.ServiceName;
            CanStop = true;
            CanShutdown = true;
        }
コード例 #8
0
        public WindowsService(
            [NotNull] IWindowsServiceConfiguration configuration, [NotNull] IApplicationLifetimeManager applicationLifetimeManager,
            [NotNull] IBackgroundServicesManager backgroundServicesManager, [NotNull] ILogger logger)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager));
            _Logger = logger ?? throw new ArgumentNullException(nameof(logger));
            _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager));

            ServiceName = configuration.ServiceName;
            CanStop     = true;
        }
コード例 #9
0
        public WindowsService(IDaemon daemon, IWindowsServiceConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (configuration.ServiceName == null)
            {
                throw new ArgumentNullException("configuration", "ServiceName cannot be null");
            }

            _daemon        = daemon;
            _configuration = configuration;

            EventLog.Log = "Application";
            ServiceName  = _configuration.ServiceName;
            CanStop      = true;
            CanShutdown  = true;
        }
コード例 #10
0
 public IWindowsServiceBuilder WithConfiguration(IWindowsServiceConfiguration configuration)
 {
     _configuration = configuration;
     return(this);
 }