2009-02-03 4 views
2

Я использовал следующий фрагмент кода для обслуживания, чтобы успешно отладить службу, запустив службу в качестве консольного приложения и проверив, что все работает нормально. Но позже, когда я установил службу и запустил ее как приложение Windows, служба работает, как указано консолью служб, но она не выполняет задание, которое у нее есть. Я хочу знать, что пошло не так в этом сценарии. Спасибо.Отладка удалась, но служба не работает после установки

static void Main() { System.ServiceProcess.ServiceBase [] ServicesToRun;

 if (Environment.UserInteractive) 
     { 
      ListenerSVC service = new ListenerSVC(); 
      service.OnStart(null); 
      Console.WriteLine("Press any key to stop program"); 
      Console.Read(); 
      service.OnStop(); 
     } 
     else 
     { 

      ServicesToRun = new System.ServiceProcess.ServiceBase[] { new ListenerSVC() }; 
      ServiceBase.Run(ServicesToRun); 


     } 
    } 

ответ

2

Вы пробовали ловить/регистрировать любые исключения? Наиболее вероятной причиной является безопасность (т. Е. Учетная запись службы не имеет доступа к некоторому ресурсу). Существует также часто встречающийся файл .config для службы (смотрите, если вы используете config). Наконец, для простоты попробуйте использовать команду arg только в том случае, если UserInteractive сообщает о некорректной ошибке - я обычно использую «-c» для режима консоли/отладки.

+0

Я регистрирую статус в базе данных и да, он говорит: «Доступ к системе очереди сообщений отклонен». Я пытаюсь читать сообщения из частной очереди в моей системе, используя службу прослушивателя. – kjayakum

+0

Я отключил UAC, и я также добавил манифест приложения для повышения привилегий. Я не знаю о требованиях безопасности, специфичных для системы очередей сообщений. Я проверил свойства очереди сообщений и обнаружил, что на вкладке безопасности не отображаются настройки для работы в режиме WORKGROUP. – kjayakum

Смежные вопросы