如何从asp.net web应用程序启动多个windows服务?

问题描述:

我想重新启动我的本地计算机上运行的一组windows服务。 我想重新启动所有这些服务一次,当我点击我的asp.net应用程序中的按钮?如何从asp.net web应用程序启动多个windows服务?

如果有人能帮助我,我将不胜感激。

截至目前,我可以通过使用 服务控制器类来实现重新启动单个Windows服务的场景。

+1

将当前实现放入循环中出现了什么问题? – ScottTx 2011-05-11 18:40:27

只需在遍历每个服务名称中放置一个循环即可。为每个服务名称创建一个ServiceController并在那里重新启动它。

List<string> serviceList = //however you get all of the services you want to start, put them in here. 

foreach(string serviceName in serviceList) 
{ 
    ServiceController controller = new ServiceController(serviceName); 
    .... 

    controller.Restart(); 
} 

要使用批处理文件中使用:

System.Diagnostics.Process.Start(pathToBatchFile); 

您可以通过使用智能感知和一点点好奇心管理过程。另外,这里是我为你找到的一篇msdn文章。

http://blogs.msdn.com/b/csharpfaq/archive/2004/06/01/146375.aspx

要隐藏命令提示,并具有在所述过程更多的控制,使用System.Diagnostics.ProcessStartInfo类及其对象传递给的Process.Start方法。您甚至可以捕获程序内批处理文件的输出。

+0

我正在考虑制作批处理文件,然后从应用程序调用批处理文件?但我不知道如何从asp.net/c#应用程序调用批处理文件... – Macnique 2011-05-11 19:03:41

+0

因此,我认为您已经和/或知道如何编写批处理文件,而您只是想从您的Web应用程序调用它? – 2011-05-11 19:05:04

+0

是的,我已经准备好了批处理文件...我需要知道如何在Web应用程序中调用? – Macnique 2011-05-11 19:06:12