2009-06-25 5 views
3

In einer App, die ich geschrieben habe, löschen wir und erstellen die Leistungsindikatoren neu, wenn die App hochfährt.Beim Löschen und Erstellen von Leistungsindikatoren in einem Dienst kann es den Dienst hängen

Wenn Sie dies von einer Konsole aus ausführen, löscht und erstellt die Anwendung die Zähler und die Zählerkategorie fein.

Wenn wir von einem Dienst ausgeführt wird, löscht die App den Zähler Kategorie wie erwartet, aber wenn die neue Kategorie zu schaffen hängt es, bis die Servicezeiten heraus

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

ok funktioniert, aber dann hängt bei diesem Verfahren

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

in der Zeile .Exists. Ich erwarte, dass dies etwas mit Berechtigungen zu tun ist, aber in der Produktion haben wir den Dienst als lokales System ausgeführt ich es wirklich in Code beheben müssen, ohne das Benutzerkonto

Dank erhebend

Antwort

2

ich die Lösung gefunden, i benötigt, um meine IOC Aufbau in der OnStart() -Methode und no der Konstruktor

+0

Markiere deinen Kommentar als die akzeptierte Antwort dann wissen wir nicht zu versuchen, um es zu beantworten. –