コード例 #1
0
        private static int RunServiceHost()
        {
            Console.WriteLine(Environment.CommandLine);

            AppServiceOptions serviceOptions = null;

            var topshelfHost = HostFactory.New(config => { CreateHost(config, out serviceOptions); });

            // Инициализация окружения для приложения

            if (!string.IsNullOrWhiteSpace(serviceOptions.StartOptions) &&
                serviceOptions.StartOptions.IndexOf("init", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                var initAppServiceHost = new AppServiceHost();
                initAppServiceHost.Init(TimeSpan.FromSeconds(10));
            }

            // Запуск службы приложения

            if (string.IsNullOrWhiteSpace(serviceOptions.StartOptions) ||
                serviceOptions.StartOptions.IndexOf("start", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                var topshelfExitCode = topshelfHost.Run();
                return(topshelfExitCode == TopshelfExitCode.Ok
                           ? (int)TopshelfExitCode.Ok
                           : (int)topshelfExitCode);
            }

            return((int)TopshelfExitCode.Ok);
        }
コード例 #2
0
        private static int RunServiceHost()
        {
            Console.WriteLine(Environment.CommandLine);

            AppServiceOptions serviceOptions = null;

            var topshelfHost = HostFactory.New(config => { CreateHost(config, out serviceOptions); });
            
            // Инициализация окружения для приложения

            if (serviceOptions.StartOptions.IndexOf("init", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                var initAppServiceHost = new AppServiceHost();
                initAppServiceHost.Init(TimeSpan.FromSeconds(10));
            }

            // Запуск службы приложения

            if (string.IsNullOrWhiteSpace(serviceOptions.StartOptions) ||
                serviceOptions.StartOptions.IndexOf("start", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                var topshelfExitCode = topshelfHost.Run();
                return topshelfExitCode == TopshelfExitCode.Ok
                           ? (int)TopshelfExitCode.Ok
                           : (int)topshelfExitCode;
            }

            return (int)TopshelfExitCode.Ok;
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting Gluon Relay Tester Server...");
            //test atom

            var svcHost = new AppServiceHost <FileSystemQueryService>("FileSystemQueryServiceHost", HubChannelUri);

            Console.WriteLine("Press Enter to stop Gluon Relay Tester Server: ");
            Console.ReadLine();

            svcHost.Dispose();
        }
コード例 #4
0
ファイル: PhoneServicePage.xaml.cs プロジェクト: rphuang/riot
        private void Initialize()
        {
            if (_initialized)
            {
                return;
            }

            DeviceSettings settings = DeviceSettings.Instance;

            _host = new AppServiceHost(settings.ServerPrefix, settings.ServiceRootPath, settings.ServiceActionRootPath, settings.ServiceCredentials);
            DisplayIpAddress();
            _host.Init();
            _initialized = true;
        }
コード例 #5
0
        private bool Initialize()
        {
            if (!_initialized)
            {
                try
                {
                    // initialize PiCar
                    _piCar = PiCarClientFactory.CreatePiCar(_controlTopic.Server, _controlTopic.Credential);
                    if (_piCar != null)
                    {
                        _piCar.Initialize(_controlTopic.ServerAddress, _controlTopic.VideoPort);
                        _cameraHorizontalServo = new ServoStat {
                            Servo = _piCar.HeadHorizontalServo
                        };
                        _cameraVertialServo = new ServoStat {
                            Servo = _piCar.HeadVerticalServo
                        };
                        _rightLed = new LedState {
                            Led = _piCar.RightLed
                        };
                        _leftLed = new LedState {
                            Led = _piCar.LeftLed
                        };
                        // initialize AppServiceHost
                        DeviceSettings settings = DeviceSettings.Instance;
                        _host = new AppServiceHost(settings.ServerPrefix, settings.ServiceRootPath, settings.ServiceActionRootPath, settings.ServiceCredentials);
                        _host.Init();

                        _initialized = true;
                    }
                }
                catch (Exception err)
                {
                    responseLabel.Text = "Failed to initialize PiCar \n" + err.ToString();
                }
            }
            if (_initialized)
            {
                CommandButton.IsEnabled      = true;
                GpioButton.IsEnabled         = true;
                ServiceOnOffButton.IsEnabled = true;
            }
            else
            {
                CommandButton.IsEnabled      = false;
                GpioButton.IsEnabled         = false;
                ServiceOnOffButton.IsEnabled = false;
            }
            return(_initialized);
        }
コード例 #6
0
        private static void CreateHost(HostConfigurator config, out AppServiceOptions serviceOptions)
        {
            // Чтение параметров командной строки
            var parameters = config.SelectPlatform(i => i.AddStringParameter("packageId")
                                                   .AddStringParameter("packageVersion")
                                                   .AddStringParameter("packageInstance")
                                                   .AddStringParameter("packageDirectory")
                                                   .AddStringParameter("packageTimeout")
                                                   .AddStringParameter("startOptions"));

            serviceOptions = ParseServiceOptions(parameters);

            // Установка текущего каталога приложения
            Directory.SetCurrentDirectory(serviceOptions.PackageDirectory);

            // Установка таймаута для запуска и остановки

            var serviceTimeout = TimeSpan.MaxValue;

            if (serviceOptions.PackageTimeout != null)
            {
                serviceTimeout = TimeSpan.FromSeconds(serviceOptions.PackageTimeout.Value);
                config.SetStartTimeout(serviceTimeout);
                config.SetStopTimeout(serviceTimeout);
            }

            config.Service <AppServiceHost>(s =>
            {
                // Создание экземпляра приложения
                s.ConstructUsing(hostSettings =>
                {
                    try
                    {
                        var instance = new AppServiceHost();
                        return(instance);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception);
                        throw;
                    }
                });

                // Запуск экземпляра приложения
                s.WhenStarted((instance, hostControl) =>
                {
                    try
                    {
                        instance.Start(serviceTimeout);
                        return(true);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception);
                        throw;
                    }
                });

                // Остановка экземпляра приложения
                s.WhenStopped((instance, hostControl) =>
                {
                    try
                    {
                        instance.Stop(serviceTimeout);
                        return(true);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception);
                        throw;
                    }
                });
            });

            // Установка имени службы

            var serviceName = GetServiceName(serviceOptions);

            config.SetServiceName(serviceName);
            config.SetDisplayName(serviceName);
            config.SetDescription(serviceName);

            // Установка экземпляра службы

            var serviceInstance = serviceOptions.PackageInstance;

            if (!string.IsNullOrWhiteSpace(serviceInstance))
            {
                config.SetInstanceName(serviceInstance);
            }
        }
コード例 #7
0
        private static void CreateHost(HostConfigurator config, out AppServiceOptions serviceOptions)
        {
            // Чтение параметров командной строки
            var parameters = config.SelectPlatform(i => i.AddStringParameter("packageId")
                                                         .AddStringParameter("packageVersion")
                                                         .AddStringParameter("packageInstance")
                                                         .AddStringParameter("packageDirectory")
                                                         .AddStringParameter("packageTimeout")
                                                         .AddStringParameter("startOptions"));

            serviceOptions = ParseServiceOptions(parameters);

            // Установка текущего каталога приложения
            Directory.SetCurrentDirectory(serviceOptions.PackageDirectory);

            // Установка таймаута для запуска и остановки

            var serviceTimeout = TimeSpan.MaxValue;

            if (serviceOptions.PackageTimeout != null)
            {
                serviceTimeout = TimeSpan.FromSeconds(serviceOptions.PackageTimeout.Value);
                config.SetStartTimeout(serviceTimeout);
                config.SetStopTimeout(serviceTimeout);
            }

            config.Service<AppServiceHost>(s =>
                                           {
                                               // Создание экземпляра приложения
                                               s.ConstructUsing(hostSettings =>
                                                                {
                                                                    try
                                                                    {
                                                                        var instance = new AppServiceHost();
                                                                        return instance;
                                                                    }
                                                                    catch (Exception exception)
                                                                    {
                                                                        Console.WriteLine(exception);
                                                                        throw;
                                                                    }
                                                                });

                                               // Запуск экземпляра приложения
                                               s.WhenStarted((instance, hostControl) =>
                                                             {
                                                                 try
                                                                 {
                                                                     instance.Start(serviceTimeout);
                                                                     return true;
                                                                 }
                                                                 catch (Exception exception)
                                                                 {
                                                                     Console.WriteLine(exception);
                                                                     throw;
                                                                 }
                                                             });

                                               // Остановка экземпляра приложения
                                               s.WhenStopped((instance, hostControl) =>
                                                             {
                                                                 try
                                                                 {
                                                                     instance.Stop(serviceTimeout);
                                                                     return true;
                                                                 }
                                                                 catch (Exception exception)
                                                                 {
                                                                     Console.WriteLine(exception);
                                                                     throw;
                                                                 }
                                                             });
                                           });

            // Установка имени службы

            var serviceName = GetServiceName(serviceOptions);
            config.SetServiceName(serviceName);
            config.SetDisplayName(serviceName);
            config.SetDescription(serviceName);

            // Установка экземпляра службы

            var serviceInstance = serviceOptions.PackageInstance;

            if (!string.IsNullOrWhiteSpace(serviceInstance))
            {
                config.SetInstanceName(serviceInstance);
            }
        }