Windows服务重新启动时自动运行应用程序

时间:2013-05-31 21:10:25

标签: .net windows service

我们有一个用于缓存目的的Windows服务。有没有办法在每次重新启动Windows服务时自动运行应用程序(例如控制台应用程序)。

1 个答案:

答案 0 :(得分:0)

这会检查您要查找的服务的状态,在服务状态恢复运行时在while循环中使用它

string machineName = ConfigurationManager.AppSettings["ServiceMachineName"];
string serviceName = ConfigurationManager.AppSettings["ServiceName"];
ServiceController service = new ServiceController( serviceName, machineName );
return service.Status;

使用以下内容启动您的应用:

System.Diagnostics.Process process = new System.Diagnostics.Process();
//process.StartInfo.FileName = @"C:\WINDOWS\system32\iisreset.exe";
process.StartInfo.FileName = "cmd";
process.StartInfo.Arguments = "/C iisreset /STOP";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();

这样,当应用程序退出循环时,继续寻找进程......