Mein C # Programm als Windows-Dienst ausgeführt wird, blockiert Windows XP aus dem Ruhezustand

StackOverflow https://stackoverflow.com/questions/2843961

Frage

Ich habe Windows-Dienst in C # geschrieben. Es beginnt zwei Threads, ist man ein Web-Service-Pooling Sekunde auf einem Monitor-Objekt wartet auf einen neuen Job zu kommen. Außerdem wirkt der Haupt-Thread als Host-Dienst WCF NetNamedPipeBinding. Damit kann die Client-Anwendung einen Rückruf registrieren und dann sendet Benachrichtigungen zurück.

Das Problem, das ich habe ist, dass, wenn dieser Windows-Dienst läuft, kann ich den Ruhezustand oder Standby nicht meinem Computer, die unter Windows XP ausgeführt wird, SP3. Wenn ich Windows auf Ruhezustand oder Standby-Modus, passiert nichts. Dann wird in dem Moment, als ich zu Service Manager gehen und den Dienst beenden, startet das System den Ruhezustand sofort.

Die Service-Klasse Erweiterung des ServiceBase hat Eigenschaften wie CanHandlePowerEvent, CanPauseAndContinue usw. Satz wahr ... Das keinen Unterschied machen hat.

Die Frage ist: Was kann den Ruhezustand / Standby von Verfahren blockiert? Was sollte ich kümmern uns um es zu vermeiden?

War es hilfreich?

Lösung

Sie erwähnen nur, dass Sie die CanHandlePowerEvent Eigenschaft auf true gesetzt. Ich gehe davon aus, dass Sie auch die OnPowerEvent und Rückkehr true handhaben müssen, wenn der Status QuerySuspend ist und wahrscheinlich auch Stop-alles, was Sie tun, obwohl ich weiß nicht, die Details dieses.

Weitere Informationen finden Sie hier:

http : //msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onpowerevent%28v=VS.80%29.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top