2009-06-25 3 views
3

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

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

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

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

Благодаря

ответ

2

Я нашел решение, я необходимо, чтобы мой МОК наращивал в методе OnStart() и не строил конструктор

+0

Отметьте свой комментарий как принятый ответ, чтобы мы знали, что не приходим искать, чтобы попытаться ответить на него. –

 Смежные вопросы

  • Нет связанных вопросов^_^