Dienste programmieren mit .NET

Installation und Deinstallation

Wird das Projekt nun übersetzt, erhalten Sie ein Executable, das mit InstallUtil tatsächlich installiert werden kann. Verwenden Sie dazu den Aufruf:

InstallUtil WindowsService1.exe

InstallUtil legt dabei eine Log-Datei im aktuellen Verzeichnis an, in der die Abläufe der Installation mitprotokolliert werden. Geht bei der Installation etwas schief, können Sie diese Log-Datei auf Fehlermeldung überprüfen.

Ist der Dienst einmal installiert, gibt es gleich das nächste Problem: Es stellt sich die Frage, wie man den Dienst wieder loswird - und zwar spätestens, wenn man einen Fehler beseitigt und die nächste Version des Dienstes übersetzt hat. Beim Versuch, diese Version dann zu installieren, erhalten Sie eine Fehlermeldung, dass der gegebene Dienst bereits installiert ist. Man muss ihn also erst deinstallieren.

Wie nicht anders zu erwarten, geht das natürlich nicht so, wie man denkt. Weder im Dienste-Applet noch in der Anwendung "Software" der Systemsteuerung findet sich ein Weg, den Dienst wieder loszuwerden.

Das erledigen Sie wieder über InstallUtil, indem Sie es mit dem Parameter /uninstall und dem Namen des Dienstes aufrufen. Danach können Sie die neue Version installieren.

Ist das geschehen, können Sie den Dienst aber noch immer nicht nutzen oder debuggen. Dazu ist er zunächst zu starten. Das geht zum Beispiel über den Server-Explorer in Visual Studio, das Dienste-Applet oder die Kommandozeile mittels net start. Dann ist es endlich so weit: Der Dienst ist benutzbar. Zum Testen können Sie zum Beispiel den Telnet-Client von Windows verwenden.