| 

.NET C# Java Javascript Exception

8
Wie geht man am besten vor, wenn man ein Programm schreiben will, welches unter Windows als Dienst ausgeführt werden soll? Was muß man dabei beachten?
News:
09.02.2011
Joachim 3,1k 4 9
2 Antworten
7
Ich hatte dazu mal was in Deutsch geschrieben: http://www.just-about.net/windows-services-steuern
09.02.2011
Hendrik Lösch 1,5k 9
7
Folge den Instruktion in diesem Link und du wirst kaum Probleme haben.

http://www.codeproject.com/KB/system/WindowsService.aspx

Zu beachten ist, das sich Windows-Services nicht einfach so debuggen lassen.

Mit dem folgenden Code kannst du jedoch erzwingen das dein Service wie ein Consolen--Programm läuft und somit leichter Debuggbar ist:

static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
if(args.Length > 0) {
TestService1 srv = new TestService1();
srv.TestRun(args[0]);
} else {
string exepath = new FileInfo(Assembly.GetEntryAssembly().Location).DirectoryName;
Directory.SetCurrentDirectory(exepath);

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
}
}

public partial class TestService1 : Service1 {
public void TestRun(string nam)
{
string[] ar = { nam };

OnStart(ar);
while((!Console.KeyAvailable) || (Console.ReadKey(true).KeyChar != 0x1b)) {
System.Threading.Thread.Sleep(100);
}
OnStop();
}
}


Wichtig ist, das du beim Programmstart irgendeiner Parameter mitgeben musst.
d.h.:
* Paramterloser Start -> Windows Service
* Start mit Parameter -> Consolenprogramm

In den Debug-Einstellungen deines Projects kannst du die Command-Line-Parameter bestimmen. Schreib dort einfach etwas wie "-C" rein.
09.02.2011
Floyd 14,5k 3 9
Floyd 14,5k 3 9

Stelle deine .net-Frage jetzt!