Не удалось найти тип или имя пространства имен 'ServiceController' (отсутствует директива using или ссылка на сборку?) - PullRequest
2 голосов
/ 11 января 2012

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

Моя проблема в моем сервере разработки, все работает нормально.Когда я устанавливаю свой сервис и загружаю веб-страницу на рабочий сервер, я получаю эту ошибку

Не удалось найти тип или имя пространства имен 'ServiceController' (если вы пропустили директиву using или сборкуссылка?)

Это дает эту ошибку на моей веб-странице.Я проверил сервис, он установлен и работает нормально, но когда я пытаюсь перейти на страницу конфигурации сервиса, он выдает это исключение.В моем проекте я вижу, что у меня using System.ServiceProcess; добавлено в верхней части, и когда я строю свое решение, эта ошибка ссылки dll не появляется.Также в конструкторе похоже, что он уже импортирован:

<@ Import Namespace="System.ServiceProcess">; В чем может быть проблема?Это может быть 32-битная / 64-битная проблема?(Я знаю, что это не имеет смысла, но любая помощь будет оценена)

ServiceController agService = new ServiceController("Buddy Service");
while (agService.Status == ServiceControllerStatus.Running)
{                   
  lblServiceStatus.Text = "Running";
  lblServiceStatus.ForeColor = Color.LimeGreen;
  btnStopService.Enabled = true;
  btnStartService.Enabled = false;
  break;
}

Выдает исключение в строке

ServiceController agService = new ServiceController("Buddy Service");

Я убедился, что "Служба друзей" находится вСписок услуг и это делает.

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Похоже, что вы правильно указали сборку.

Попробуйте изменить эту строку:

ServiceController agService = new ServiceController("Buddy Service");

к этому:

var agService = new System.ServiceProcess.ServiceController("Buddy Service");

Если это работает, вам, вероятно, также нужно изменить эту строку:

while (agService.Status == ServiceControllerStatus.Running)

к этому:

while (agService.Status == System.ServiceProcess.ServiceControllerStatus.Running)
2 голосов
/ 11 января 2012

убедитесь, что вы добавили System.ServiceProcess в свой список ссылок, чем в список пользователей:

Example

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...