Dienste schreiben in Visual Studio Express

Antworten
Benutzeravatar
Jet0JLH
Administrator
Beiträge: 28
Registriert: So 11. Okt 2015, 21:37

Dienste schreiben in Visual Studio Express

Beitrag von Jet0JLH »

Um auch in Visual Studio Express einen Dienst zu erstellen muss erst mal eine Konsolenanwendung erstellt werden.
Hierzu werden folgende Verweise benötigt:
  • System.ServiceProcess
  • System.Configuration.Install
Folgende Imports müssen durchgeführt werden:

Code: Alles auswählen

Imports System.ComponentModel
Imports System.ServiceProcess
Nun kann folgender Grundaufbau verwendet werden:

Code: Alles auswählen

Public Modul Modul1
	Sub Main()
		ServiceBase.Run(New MyService())
	End Sub

	Public Class MyService : Inherits ServiceBase
		Public Sub MyTimeService()
			CanStop = True
		End Sub
		Protected Overrides Sub OnStart(args() As String)
			'Code der beim Start des Dienstes ausgeführt wird.
			'Hierbei die eigentliche Logik in einen Task, Timer, etc. auslagern, damit die OnStart Routine schell beendet wird.
		End Sub
		Protected Overrides Sub OnStop()
			'Code der beim Beenden des Services ausgeführt wird.
			'Hierbei sollten nicht mehr benötigte Variablen frei gegeben und laufende Prozesse angehalten werden.
		End Sub
	End Class
End Modul
Nun muss nur noch der Installer für den Dienst eingebaut werden. Hierzu muss folgender Code auserhalb des Modul1 eingefügt werden:

Code: Alles auswählen

<RunInstaller(True)> _
Public Class MyInstaller
	Inherits System.Configuration.Install.Installer
	Public Sub New()
		Dim Installer As New ServiceInstaller
		Installer.StartType = ServiceStartMode.Automatic
		Installer.ServiceName = "DienstName"
		Installer.Description = "Beschreibung des Dienstes"
		Installers.Add(Installer)

		Dim processInstaller As New ServiceProcessInstaller
		processInstaller.Account = ServiceAccount.LocalSystem

		Installers.Add(processInstaller)
	End Sub
End Class
Nun ist der Dienst Fertig und kann über folgenden Consolenbefehl Installiert werden:

Code: Alles auswählen

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Pfad zur Dienst.exe>
Zum Deinstallieren:

Code: Alles auswählen

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /U <Pfad zur Dienst.exe>
Antworten