示例#1
0
        protected void Application_Start()
        {
            // Приложение не должно накатывать миграции или создавать базы
            AccountDbContext.DisableMigrations();

            Initialization.SetServices();
            InitMonitoring();

            try
            {
                // Загрузим подключаемую сборку с управлением аккаунтом
                Assembly.LoadFile(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, @"bin\Zidium.UserAccount.AddIn.dll"));

                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                RegisterBinders();

                EnumHelper.RegisterNaming(new ObjectColorNaming());
                EnumHelper.RegisterNaming(new BalanceOperationNaming());
                EnumHelper.RegisterNaming(new EventImportanceNaming());
                EnumHelper.RegisterNaming(new MonitoringStatusNaming());
                EnumHelper.RegisterNaming(new EventCategoryNaming());

                ClientDataTypeModelValidatorProvider.ResourceClassKey = "RussianResources";
                DefaultModelBinder.ResourceClassKey = "RussianResources";
                Thread.CurrentThread.CurrentCulture = CultureHelper.Russian;
            }
            catch (Exception exception)
            {
                LogManager.GetCurrentClassLogger().Fatal(exception);
            }
        }
示例#2
0
        protected void Application_Start(object sender, EventArgs e)
        {
            // Приложение не должно накатывать миграции или создавать базы
            AccountDbContext.DisableMigrations();

            Initialization.SetServices();
            InitComponentControl();

            try
            {
                DispatcherHandler.Init(DispatcherService.Wrapper.Control);
                InitLimitsSaving();
            }
            catch (Exception exception)
            {
                LogManager.GetCurrentClassLogger().Fatal(exception);
            }
        }
示例#3
0
        public bool Start()
        {
            // Приложение не должно накатывать миграции или создавать базы
            AccountDbContext.DisableMigrations();

            Initialization.SetServices();
            InitMonitoring();

            try
            {
                // запускаем периодический сбор данных о количестве используемых контекстов
                ContextCountTimer = new Timer(SaveContextsCount, null, 0, (int)ContextCountTimerInterval.TotalMilliseconds);

                // создаем список фоновых задач
                _agentTasks = !ServiceConfiguration.DummyMode ? new List <AgentTaskBase>()
                {
                    new CreateNotificationsTask(),
                    new EmailNotificationsTask(),
                    new SmsNotificationsTask(),
                    new HttpNotificationsTask(),
                    new OutdatedMetricsTask(),
                    new SendEmailsTask(),
                    new SendSmsTask(),
                    new DeleteLogsTask(),
                    new DeleteMetricHistoryTask(),
                    new DeleteCustomerEventsTask(),
                    new DeleteUnittestEventsTask(),
                    new DeleteMetricEventsTask(),
                    new DeleteComponentEventsTask(),
                    new ComponentStatusTask(),
                    new OutdatedEventsStatusesTask(),
                    new OutdatedUnitTestsTask(),
                    new HttpRequestsTask(),
                    new PingTask(),
                    new SqlCheckTask(),
                    new DomainNamePaymentPeriodCheckTask(),
                    new SslCertificateExpirationDateCheckTask(),
                } : new List <AgentTaskBase>()
                {
                    new DummyTask()
                };

                // Загрузим сборку с подключаемыми задачами
                var folder           = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]);
                var assemblyFilename = Path.Combine(folder ?? Environment.CurrentDirectory, "Zidium.Agent.AddIn.dll");
                if (File.Exists(assemblyFilename))
                {
                    var addInAssembly = Assembly.LoadFile(assemblyFilename);
                    var startupType   = addInAssembly.GetExportedTypes().FirstOrDefault(t => string.Equals("Startup", t.Name, StringComparison.OrdinalIgnoreCase));
                    if (startupType != null)
                    {
                        var method = startupType.GetMethod("AddTasks", BindingFlags.Static | BindingFlags.Public);
                        if (method != null)
                        {
                            method.Invoke(null, new object[] { _agentTasks, ServiceConfiguration.DummyMode });
                        }
                    }
                }

                LogManager.ReconfigExistingLoggers();

                // запускаем задачи
                TokenSource = new CancellationTokenSource();
                foreach (var agentTask in _agentTasks)
                {
                    Logger.Debug("Запуск задачи " + agentTask.Name);
                    agentTask.Start(TokenSource.Token);
                    Logger.Info("Задача " + agentTask.Name + " запущена");
                }
                Logger.Info("Все задачи запущены");

                return(true);
            }
            catch (Exception exception)
            {
                Logger.Fatal(exception);
                return(false);
            }
        }