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

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?

有帮助吗?

解决方案

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top