Не мог запустить сервис, записанный в.NET 2.0 на Встроенном Windows XP

Я создал маленький исполняемый файл, который может быть запущен любой как нормальное приложение путем вызова 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. Заранее спасибо за любое направление на этом.

MyApp.cs

static class MyApp
{
    [STAThread] static void Main( string[] args )
    {
        ....
        switch ( arg1 )
        {
            case "-s":
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] { new MyAppService() };
                ServiceBase.Run( ServicesToRun );
                break;
             ....
        }
    }
}

MyAppService.cs:

class MyAppService : ServiceBase
{
    static MyAppService()
    {
        // ...
    }

    protected override void OnStart( string[] args )
    {
        // ...
    }
}
6
задан Stephen Jennings 10 March 2010 в 00:15
поделиться