2009-04-16 15 views
2

Ein WCF-Dienst wird in einem Windows-Dienst (WS) gehostet.So beenden Sie den eigenen Windows-Dienst

Wenn die Datenbank (SqlServer 2005) ausfällt, wird aufgrund der Aktionen in der Datenbank eine SqlException ausgelöst.

Was ich erreichen möchte, ist, dass die WS - wo der WCF-Dienst gehostet wird - gehen sollte, wenn die DB auch ausgefallen ist.

Der WS wird übrigens manuell neu gestartet.

Meine Idee ist, nichts dagegen zu tun. Die unbehandelte Ausnahme stoppt den WS.

Ist dies der richtige Weg?

Antwort

2

Wenn Sie Ihren Windows-Dienst explizit beenden möchten, rufen Sie einfach die .Stop() - Methode für Ihre Serviceklasse auf.

Windows-Dienste können so konfiguriert werden, dass sie bei einem Fehler automatisch neu gestartet werden. Wenn Sie also die SqlException nach oben fließen lassen, erreichen Sie möglicherweise nicht das, was Sie möchten.

Marc

+0

Das erste Szenario, das Sie zeigen, zwingt mich, die SqlException zu fangen und dann den Windows-Dienst selbst zu stoppen. Das zweite Szenario ist für mich wenig verwirrend: Wenn ich meine WS so konfiguriere, dass sie bei einem Fehler neu gestartet wird, dann wird die WSL durch das Überspringen der SqlException neu gestartet, so dass dies die Lösung wäre. –

+0

1. Szenario: Ich dachte, das ist das, wonach du gefragt hast - nein? 2. Szenario: Dies ist eine Funktion des Standard-Windows-Dienst-Controllers - Sie können festlegen, was beim ersten, zweiten und dritten Fehler eines Dienstes zu tun ist - Neustart ist nur eine der Optionen. –

1

Zuerst müssen Sie erkennen, dass SQL Server von der SQLException, die Sie erhalten, untergegangen ist. Zweitens, warum man den Webservice killt und stattdessen einen Fehler an den Client zurücksendet, der sagt, dass der Dienst aus irgendeinem Grund vorübergehend nicht erreichbar ist.

+0

Der zweite Punkt: Der Kunde möchte es auf diese Weise, keine Diskussion, pffff –

+0

Das ziemlich dumm ist ... Also, wenn die DB zurück, müssen sie manuell neu zu starten? –

+0

@Rob: Ja, das ist, was sie tun ... –

Verwandte Themen