Я следую вместе с http://msdn.microsoft.com/en-us/library/bb332338.aspx, чтобы разместить мою службу в качестве службы Windows. Он устанавливается просто отлично, но я бы хотел установить параметры восстановления «Перезапустить службу» на «Первый сбой», «Второй сбой» или «Последующий сбой». Как это можно достичь?Наряду с моим установщиком службы Windows, можно ли установить параметры восстановления при возникновении ошибок?
3
A
ответ
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 для получения дополнительной информации
2
Вы можете установить параметры восстановления с помощью sc.exe из командной строки. Этот ответ имеет хороший пример того, как сделать это с помощью C#:
А это похоже на более правильный способ сделать это. – Alexandru