Нашёл на просторах интернета такой код:
private static ServiceController ser { get; set; }
using (ser = new ServiceController("MpsSvc"))
{
ser.Start();
label.Visible = true;
label.Text = "Служба запущена!";
ser.Close();
}
Иногда работает, иногда нет.
Можно ли к выше указанному коду прикрутить проверку существования службы + проверку запуска службы ( если служба остановлена запустить)
Нужно ли использовать get;set;
для таких целей?
Переделал так, поправьте если не правильно)
private void StopService_Click(object sender, EventArgs e)
{
using (var serviceController = new ServiceController("sevice"))
{
if (CheckService.CheckIfServiceExists("sevice"))
{
serviceController.Stop();
serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
label.Visible = true;
label2.Text = "Служба остановлена";
StopService.Visible = false;
StartService.Visible = true;
}
}
}
1-й раз проходит нормально, следующий пишет что службу не удалось остановить/запустить ( хотя перед остановкой служба работает )
С чем это связано?
Вы в любой момент можете проверить статус службы с помощью ServiceController.Status
Для проверки существования службы получайте список существующих служб и проверяйте присутсвие требуемой вами службы в этом списке:
public bool CheckIfServiceExists(string serviceName)
{
var services = ServiceController.GetServices();
return services.Any(s => s.ServiceName == serviceName);
}
Нужно ли использовать get;set; для таких целей?
Вопрос неясен. На вашем месте я бы вообще убрал это свойство и оформил бы это в виде локальной переменной.
Для проверки действительно ли запустился/остановился сервис используйте ServiceController.WaitForStatus()
метод. Передавайте ServiceControllerStatus.Running
для ожидания старта сервиса или ServiceControllerStatus.Stopped
для ожидания остановки сервиса после вызова функций ServiceController.Start()
и ServiceController.Stop()
соответсвенно.
Пример старта сервиса:
using(var serviceController = new ServiceController(ИмяСервиса))
{
serviceController.Start();
serviceController.WaitForStatus(ServiceControllerStatus.Running);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Bootstrap подключается только по адресу localhost/site/ , если вести localhost/site/index/index (это одна и та самая страница )то работать уже не будетПолучатся что...