如何在我的Windows服务之前启动MYSQL服务
本文关键字:服务 启动 MYSQL Windows 我的 | 更新日期: 2023-09-27 18:02:29
我有运行的windows服务程序,有时会抛出关于系统空引用的异常。经过我的调查,这是由于MySQL连接无法建立,由于MySQL实例尚未启动计算机时。如何解决这个问题??
thanks in advance
您可以在Windows中设置每个服务的依赖项。
您可以进入控制面板->管理工具->服务(或运行' Services ')。从命令行输入Msc)。通过双击任意一个服务并转到Dependencies选项卡,你可以看到每个服务所依赖的内容。
你的服务依赖于MySql服务,所以MySql应该在它的依赖列表中。
您可以向依赖项添加项,下面是如何执行此操作的描述:
https://serverfault.com/questions/24821/how-to-add-dependency-on-a-windows-service-after-the-service-is-installed本文可以提示您如何编写服务依赖关系:
http://bloggingabout.net/blogs/jschreuder/archive/2006/12/07/How-to_3A00_-Code-Service-Dependencies.aspx如果您想自己完成它,请尝试下面的代码
//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));
}
}