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