0

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

4

1 回答 1

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();

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

于 2013-05-31T21:25:58.390 回答