Exemplo n.º 1
0
        protected override void OnStart(string[] args)
        {
            putToSvcLog("*** Запуск Windows-службы КДС ***");

#if DEBUG == true
            if (args != null)
            {
                putToSvcLog("аргументы запуска службы: " + string.Join(" ", args));
            }
#endif
            // ЗАЩИТА PSW-файлом
            // аргумент запуска args = new string[] { "-autoGenLicence" };
            bool isLoyalClient = ((args != null) && args.Contains("-autoGenLicence"));
            // ключ реестра HKLM\Software\Integra\autoGenLicence = 01 (binary)
            if (isLoyalClient == false)
            {
                isLoyalClient = RegistryHelper.IsExistsAutoGenLicenceKey();
            }
            pswLib.CheckProtectedResult checkProtectedResult;
            if (pswLib.Hardware.IsCurrentAppProtected("KDSService", out checkProtectedResult, null, isLoyalClient) == false)
            {
                putToSvcLog(checkProtectedResult.LogMessage);
                putToSvcLog(checkProtectedResult.CustomMessage);
                Environment.Exit(2);
                return;
            }


            // 1. Инициализация сервисного класса KDSService
            try
            {
                // config file
                string cfgFile = CfgFileHelper.GetAppConfigFile("KDSService");
                putToSvcLog("Инициализация сервисного класса KDSService...");
                service = new KDSService.KDSServiceClass();
                service.InitService(cfgFile);
                putToSvcLog("Инициализация сервисного класса KDSService... Ok");
            }
            catch (Exception ex)
            {
                putToSvcLog("Ошибка инициализации сервисного класса: " + ex.Message);
                exitApplication(1);
            }

            // создать хост, параметры канала считываются из app.config
            try
            {
                putToSvcLog("Создание канала для приема сообщений...");
                service.CreateHost();
            }
            catch (Exception ex)
            {
                putToSvcLog("  ERROR: " + ex.Message);
                exitApplication(2);
            }

            service.StartTimer();

            putToSvcLog("Создание канала для приема сообщений... Ok\n\tСлужба готова к приему сообщений.");
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.Title = "KDS SERVICE";

            Console.WriteLine("*** Начало работы приложения ***");
            KDSService.KDSServiceClass service = new KDSService.KDSServiceClass();

            // 1. Инициализация сервисного класса KDSService
            try
            {
                // config file
                //string cfgFile = @"D:\KDSService.config";
                string cfgFile = AppDomain.CurrentDomain.BaseDirectory + "KDSService.config";
                Console.WriteLine("Инициализация сервисного класса KDSService...");
                service.InitService(cfgFile);
                Console.WriteLine("Инициализация сервисного класса KDSService... Ok");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Ошибка инициализации сервисного класса: " + ex.Message);
                exitWithPrompt(1);
            }

            // создать и открыть канал для приема сообщений
            try
            {
                Console.WriteLine("Создание канала для приема сообщений...");
                service.CreateHost();
                DisplayHostInfo(service.ServiceHost);
            }
            catch (Exception ex)
            {
                Console.WriteLine("  ERROR: " + ex.Message);
                exitWithPrompt(2);
            }

            service.StartTimer();

            Console.WriteLine("\nСлужба готова к приему сообщений.\nДля завершения нажмите Enter\n");
            Console.ReadKey();

            if (service != null)
            {
                Console.WriteLine("Закрытие служебного класса KDSService");
                service.Dispose(); service = null;
            }
            Console.WriteLine("*** Завершение работы приложения ***");
        }