как запустить службу MYSQL перед моей службой Windows - PullRequest
1 голос
/ 16 июля 2011

У меня есть программа-служба Windows, которая запускается и иногда выдает исключение о нулевой ссылке на систему. После моего расследования это связано с тем, что MySQL не может установить соединение из-за того, что экземпляр MySql еще не запущен при запуске компьютера. Как решить эту проблему ???

заранее спасибо

Ответы [ 3 ]

2 голосов
/ 16 июля 2011

Вы можете установить в Windows зависимости каждого сервиса.

Вы можете перейти в Панель управления -> Администрирование -> Службы (или запустить «services.msc» из командной строки). Дважды щелкнув любой из сервисов и перейдя на вкладку Зависимости, вы можете увидеть, на что опирается каждый сервис.

Ваша служба использует службу MySql, поэтому MySql должен быть в списке зависимостей для нее.

Вы можете добавлять элементы в зависимости, вот описание того, как это сделать:

https://serverfault.com/questions/24821/how-to-add-dependency-on-a-windows-service-after-the-service-is-installed

1 голос
/ 17 июля 2011

Попробуйте следующий код, если вы хотите сделать это самостоятельно без зависимостей

//Check if service is running
ServiceController mysqlServiceController = new ServiceController();
mysqlServiceController.ServiceName = "MySql";
var timeout = 3000;

//Check if the service is started
if (mysqlServiceController.Status == System.ServiceProcess.ServiceControllerStatus.Stopped
                || mysqlServiceController.Status == System.ServiceProcess.ServiceControllerStatus.Paused)
{
      mysqlServiceController.Start();

      try
      {
           //Wait till the service runs mysql
           ServiceController.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running, new TimeSpan(0, timeout, 0));
      }
      catch (System.ServiceProcess.TimeoutException)
      {
          //MessageBox.Show(string.Format("Starting the service \"{0}\" has reached to a timeout of ({1}) minutes, please check the service.", mysqlServiceController.ServiceName, timeout));
      }
}
1 голос
/ 16 июля 2011

Эта статья может дать вам подсказку о том, как службы кода зависимости:

http://bloggingabout.net/blogs/jschreuder/archive/2006/12/07/How-to_3A00_-Code-Service-Dependencies.aspx

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