It also important taking in account how you access the Arguments in the code of the application.
In my c# application I used the ServiceBase class:
class MyService : ServiceBase
{
protected override void OnStart(string[] args)
{
}
}
I registered my service using
sc create myService binpath= "MeyService.exe arg1 arg2"
But I couldn't access the arguments through the args
variable when I run it as a service.
The MSDN documentation suggests not using the Main method to retrieve the binPath
or ImagePath
arguments. Instead it suggests placing your logic in the OnStart
method and then using (C#) Environment.GetCommandLineArgs();
.
To access the first arguments arg1
I need to do like this:
class MyService : ServiceBase
{
protected override void OnStart(string[] args)
{
log.Info("arg1 == "+Environment.GetCommandLineArgs()[1]);
}
}
this would print
arg1 == arg1