2016-06-03 12 views
1

In einem einfachen statuslosen Dienst versuche ich Gesundheit zu melden. Als Test blicke ich einfach bei jeder Iteration meiner Schleife in RunAsync zwischen OK- und Warnstatus (es hat ein Schlafintervall von 15 Sekunden). Der Code sieht wie folgt aus:Health Reporting Stuck

// report warning on odd iterations 
HealthState state = ((++iterations % 2) != 0) ? HealthState.Warning : HealthState.Ok; 
HealthInformation health = new HealthInformation("ServiceCode", "Iteration", state); 
Partition.ReportInstanceHealth(health); 

ich bei jeder Iteration der Schleife, die den Zustand am Protokollierung und das Protokoll zeigt es hin und her Spiegeln. Aber im SF Explorer bleibt es auf Ok, niemals auf Warnung (ich habe ein Auffrischintervall von 5 Sekunden in SFExplorer).

Was mache ich hier falsch?

Antwort

0

Sieht aus wie Gesundheitsberichterstattung ist deutlich langsamer als ich erwarten würde. Die Arbeit an diesem 15-Sekunden-Intervall war nicht genug Zeit, um den alternierenden Gesundheitszustand zu zeigen. Der Wechsel zu einem Intervall von 30 Sekunden scheint das Problem gelöst zu haben.

1

Versuchen Sie, HealthInformation.SequenceNumber mit einem inkrementellen Wert für jede Statusänderung anzugeben.