Служба Windows запускается, затем останавливается

У меня есть служба Windows, которую я унаследовал от ушедшего разработчика. Служба Windows работает нормально в среде QA. Когда я устанавливаю службу и запускаю ее локально, я получаю эту ошибку:

Служба не может быть запущена. System.InvalidOperationException: запрошенный счетчик производительности не является пользовательским счетчиком, его необходимо инициализировать как ReadOnly.

Вот код:

ExternalDataExchangeService exchangeService = new ExternalDataExchangeService();
            workflowRuntime.AddService(exchangeService);
            workflowRuntime.AddService(new SqlTrackingService(AppContext.SqlConnectionImportLog));
            ChallengerWorkflowService challengerWorkflowService = new ChallengerWorkflowService();
            challengerWorkflowService.SendDataEvent += new EventHandler<SendDataEventArgs>(challengerWorkflowService_SendDataEvent);
            workflowRuntime.AddService(challengerWorkflowService);
            workflowRuntime.StartRuntime(); <---- Exception is thrown here.

2 ответа

Проверьте код установщика. Часто вы обнаружите, что счетчики создаются в рамках установки (которая будет запускаться с правами администратора на клиентском сайте), а затем код использует их так, как будто они существуют, но не будет пытаться создать их, потому что они не ожидают наличия разрешения.

Если вы просто получаете исходный код и затем пытаетесь запустить его, классы счетчиков / счетчиков не существуют, поэтому вы сразу же падаете. (В качестве альтернативы проверьте, существует ли счетчик / у вас есть локальный администратор, если они написали код для его создания в службе.)

Видел это раньше, так упомянул об этом.

Присоединить отладчик и разбить на InvalidOperationException (первый шанс, то есть, когда выброшен)?

Другие вопросы по тегам