Along with my hosted Windows service's installer, is it possible to set the recovery options when errors occur?

StackOverflow https://stackoverflow.com/questions/18404244

Question

I'm following along with http://msdn.microsoft.com/en-us/library/bb332338.aspx to host my service as a Windows service. It installs just fine, but I would like to actually set the recovery options to "Restart the Service" on a "First failure", "Second failure", or "Subsequent failure". How can this be achieved?

Was it helpful?

Solution

The options for doing so are not simple, they require invoking some methods to pull it off. You could use something like the following extension, http://www.codeproject.com/Articles/6164/A-ServiceInstaller-Extension-That-Enables-Recovery or rolling your own using the commands.

[DllImport("advapi32.dll", EntryPoint="ChangeServiceConfig2")]
public static extern bool 
ChangeServiceFailureActions( IntPtr hService, int dwInfoLevel,
[ MarshalAs( UnmanagedType.Struct ) ] ref SERVICE_FAILURE_ACTIONS lpInfo );


[DllImport("advapi32.dll", EntryPoint="ChangeServiceConfig2")]
public static extern bool 
ChangeServiceDescription( IntPtr hService, int dwInfoLevel, 
[ MarshalAs( UnmanagedType.Struct ) ] ref SERVICE_DESCRIPTION lpInfo );

See http://netcode.ru/dotnet/?lang=&katID=30&skatID=277&artID=7660 for more information

OTHER TIPS

You can set recovery options using sc.exe from the command line. This answer has a good example of how to do this using C#:

Install Windows Service with Recovery action to Restart

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top