При удалении и создании счетчиков производительности в сервисе он может повесить сервис - PullRequest
3 голосов
/ 25 июня 2009

В приложении, которое я написал, мы удаляем и воссоздаем счетчики производительности при раскрутке приложения.

При запуске из консоли приложение удаляет и воссоздает счетчики и штрафную категорию счетчика.

Когда мы запускаем из службы, приложение удаляет категорию счетчика, как и ожидалось, но при создании новой категории оно зависает до истечения времени ожидания службы

     if (PerformanceCounterCategory.Exists(CATEGORY_NAME))
     {
        PerformanceCounterCategory.Delete(CATEGORY_NAME);
     }

Работает нормально, но затем зависает в этом методе

      private PerformanceCounterCategory RecreateTheCategory()
  {
     PerformanceCounterCategory category = null;
     if (!PerformanceCounterCategory.Exists(CATEGORY_NAME))
     {
        category = PerformanceCounterCategory.Create(CATEGORY_NAME, CATEGORY_HELP,
                                                     PerformanceCounterCategoryType.SingleInstance,
                                                     counterCreationDataCollection);
     }
     return category;
  }

в строке .Exists. Я ожидаю, что это как-то связано с разрешениями, но так как в производственном процессе мы должны запускать службу как локальную систему, мне действительно нужно исправить это в коде, не повышая учетной записи пользователя

Спасибо

1 Ответ

2 голосов
/ 25 июня 2009

Я нашел решение, мне нужно было выполнить сборку IOC в методе OnStart (), а не конструктор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...