我正在跟随http://msdn.microsoft.com/en-us/library/bb332338.aspx一起托管我的服务作为Windows服务。它安装得很好,但我想在“第一次失败”,“第二次失败”或“后续失败”中将恢复选项设置为“重启服务”。如何实现这一目标?
答案 0 :(得分:4)
这样做的选项并不简单,它们需要调用一些方法来实现它。您可以使用以下扩展名http://www.codeproject.com/Articles/6164/A-ServiceInstaller-Extension-That-Enables-Recovery之类的内容,或使用命令滚动自己的扩展名。
[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 );
有关详细信息,请参阅http://netcode.ru/dotnet/?lang=&katID=30&skatID=277&artID=7660
答案 1 :(得分:2)
您可以使用命令行中的sc.exe设置恢复选项。这个答案有一个很好的例子,说明如何使用C#: