В приложении, которое я написал, мы удаляем и воссоздаем счетчики производительности при раскрутке приложения.
При запуске из консоли приложение удаляет и воссоздает счетчики и штрафную категорию счетчика.
Когда мы запускаем из службы, приложение удаляет категорию счетчика, как и ожидалось, но при создании новой категории оно зависает до истечения времени ожидания службы
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. Я ожидаю, что это как-то связано с разрешениями, но так как в производственном процессе мы должны запускать службу как локальную систему, мне действительно нужно исправить это в коде, не повышая учетной записи пользователя
Спасибо