Я создал маленький исполняемый файл, который может быть запущен любой как нормальное приложение путем вызова MyApp.exe
или как услуга путем вызова MyApp.exe -s
. Поскольку я пытаюсь сохранить максимально простым, я "устанавливаю" это приложение путем ручного выполнения
sc create MyAppService binPath= "C:\MyApp\MyApp.exe -s"
Затем я запускаю сервис с net start MyAppService
как нормальный.
На двух машинах Windows XP и двух машинах Windows 2000, это хорошо работает. Однако на двух других Windows XP Встроенные машины, когда я пытаюсь запустить сервис, я получаю сообщение:
Системная ошибка 1083 произошла.
Исполняемая программа, в которой этот сервис настроен для выполнения, не реализует сервис.
На одной машине я смог зафиксировать это путем удаления и переустановки.NET 2.0, но на второй машине это не работало.
Я не уверен, как пойти об отладке этого, и поиск Google только, кажется, поднимает определенные сервисы, которые перестали работать с этим сообщением, таким как БИТЫ и Служба обмена.
Ниже классы MyApp
, который является классом запуска, и MyAppService
, который является классом, который расширяет ServiceBase. Заранее спасибо за любое направление на этом.
static class MyApp
{
[STAThread] static void Main( string[] args )
{
....
switch ( arg1 )
{
case "-s":
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MyAppService() };
ServiceBase.Run( ServicesToRun );
break;
....
}
}
}
class MyAppService : ServiceBase
{
static MyAppService()
{
// ...
}
protected override void OnStart( string[] args )
{
// ...
}
}