コード例 #1
0
 protected override void OnStop()
 {
     base.OnStop();
     CremaLog.Debug("service close");
     this.cremaService.Close();
     CremaLog.Debug("service closed.");
 }
コード例 #2
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            var baseArgs = Environment.GetCommandLineArgs();
            var path     = baseArgs[1];
            var port     = int.Parse(baseArgs[2]);

            this.cremaService = new CremaService()
            {
                BasePath = path,
                Port     = port,
            };

            CremaLog.Debug("service base path : {0}", path);
            CremaLog.Debug("service port : {0}", port);

            try
            {
                CremaLog.Debug(args.Length);
                if (args.Any() == true)
                {
                    var settings = new Settings()
                    {
                        BasePath         = this.cremaService.BasePath,
                        Port             = this.cremaService.Port,
                        RepositoryModule = this.cremaService.RepositoryModule,
                        RepositoryName   = this.cremaService.RepositoryName,
                    };
                    var parser = new CommandLineParser("setting", settings);
                    parser.Parse(string.Join(" ", "setting", string.Join(" ", args)));

                    this.cremaService.BasePath         = settings.BasePath;
                    this.cremaService.Port             = settings.Port;
                    this.cremaService.RepositoryModule = settings.RepositoryModule;
                    this.cremaService.RepositoryName   = settings.RepositoryName;

                    CremaLog.Debug("=========================================================");
                    CremaLog.Debug("new settings");
                    CremaLog.Debug("service base path : {0}", settings.BasePath);
                    CremaLog.Debug("service port : {0}", settings.Port);
                    CremaLog.Debug("service repo name : {0}", settings.RepositoryName);
                    CremaLog.Debug("service repo module : {0}", settings.RepositoryModule);
                    CremaLog.Debug("=========================================================");
                }
            }
            catch (Exception e)
            {
                CremaLog.Error(e);
                throw e;
            }

            CremaLog.Debug("service open");
            this.cremaService.Open();
            this.cremaHost         = this.cremaService.CremaHost;
            this.cremaHost.Closed += CremaHost_Closed;
            CremaLog.Debug("service opened.");
        }
コード例 #3
0
        private void StopService()
        {
            CremaLog.Debug("service close");
            this.cremaService.Close();
            CremaLog.Debug("service closed.");

            if (IsMonoRuntime)
            {
                Environment.Exit(0);
            }
        }
コード例 #4
0
 private void CremaHost_Closed(object sender, ClosedEventArgs e)
 {
     CremaLog.Debug(nameof(CremaHost_Closed) + " " + e.Reason);
     if (e.Reason == CloseReason.Shutdown)
     {
         Task.Run(() =>
         {
             Thread.Sleep(1000);
             this.Stop();
         });
     }
 }
コード例 #5
0
        protected override void OnStop()
        {
            base.OnStop();
            CremaLog.Debug("service close");
            this.cremaService.Close();
            CremaLog.Debug("service closed.");

            if (IsMonoRuntime)
            {
                Environment.Exit(0);
            }
        }
コード例 #6
0
 protected override void OnCommitted(System.Collections.IDictionary savedState)
 {
     CremaLog.Debug(serviceInstaller.ServiceName);
     CremaLog.Debug("commit");
     base.OnCommitted(savedState);
     CremaLog.Debug("committed");
     using ServiceController controller = new ServiceController(serviceInstaller.ServiceName);
     try
     {
         if (controller.Status != ServiceControllerStatus.Running)
         {
             controller.Start();
             controller.WaitForStatus(ServiceControllerStatus.Running);
         }
     }
     catch
     {
         throw;
     }
 }
コード例 #7
0
 public void Debug(object message)
 {
     CremaLog.Debug(message);
 }
コード例 #8
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            try
            {
                var environmentCommandLineArgs = Environment.GetCommandLineArgs();
                var baseArgs = IsMonoRuntime
                    ? environmentCommandLineArgs.Skip(environmentCommandLineArgs.Length - MonoRuntimeCommandLineArgsCount - 1).Take(MonoRuntimeCommandLineArgsCount + 1).ToArray()
                    : environmentCommandLineArgs;
                var path     = baseArgs[1];
                var port     = int.Parse(baseArgs[2]);
                var httpPort = int.Parse(baseArgs[3]);

                this.cremaService = new CremaService()
                {
                    BasePath = path,
                    Port     = port,
                    HttpPort = httpPort
                };

                CremaLog.Debug(args.Length);
                if (!IsMonoRuntime && args.Any())
                {
                    var settings = new Settings()
                    {
                        BasePath         = this.cremaService.BasePath,
                        Port             = this.cremaService.Port,
                        HttpPort         = this.cremaService.HttpPort.Value,
                        RepositoryModule = this.cremaService.RepositoryModule,
                        RepositoryName   = this.cremaService.RepositoryName,
                    };
                    var parser = new CommandLineParser("setting", settings);
                    parser.Parse(string.Join(" ", "setting", string.Join(" ", args)));

                    this.cremaService.BasePath         = settings.BasePath;
                    this.cremaService.Port             = settings.Port;
                    this.cremaService.RepositoryModule = settings.RepositoryModule;
                    this.cremaService.RepositoryName   = settings.RepositoryName;

                    CremaLog.Debug("=========================================================");
                    CremaLog.Debug("new settings");
                    CremaLog.Debug("service base path : {0}", settings.BasePath);
                    CremaLog.Debug("service port : {0}", settings.Port);
                    CremaLog.Debug("service http port : {0}", settings.HttpPort);
                    CremaLog.Debug("service repo name : {0}", settings.RepositoryName);
                    CremaLog.Debug("service repo module : {0}", settings.RepositoryModule);
                    CremaLog.Debug("=========================================================");
                }
                else if (args.Any())
                {
                    CremaLog.Debug("service base path : {0}", this.cremaService.BasePath);
                    CremaLog.Debug("service port : {0}", this.cremaService.Port);
                    CremaLog.Debug("service http port : {0}", this.cremaService.HttpPort ?? -1);
                    CremaLog.Debug("service repo name : {0}", this.cremaService.RepositoryName);
                    CremaLog.Debug("service repo module: {0}", this.cremaService.RepositoryModule);
                }
            }
            catch (Exception e)
            {
                CremaLog.Error(e);
                throw e;
            }

            CremaLog.Debug("service open");
            this.cremaService.Open();
            this.cremaHost         = this.cremaService.CremaHost;
            this.cremaHost.Closed += CremaHost_Closed;
            CremaLog.Debug("service opened.");
        }
コード例 #9
0
 protected override void OnShutdown()
 {
     base.OnShutdown();
     CremaLog.Debug("Computer shutdown.");
     StopService();
 }