2009-12-01 125 views

回答

0

您首先需要添加对System.ServiceProcess程序集的引用。下面的代码给你大概你想做的事(我用在以下称为messageLabel Label控件)是什么:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.ServiceProcess; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class StartService : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     string serviceName = "Remote Registry"; 
     try 
     { 
      StartServiceByName(serviceName); 
     } 
     catch (Exception ex) 
     { 
      messageLabel.Text = ex.ToString().Replace("\r\n", "<BR>"); 
      return; 
     } 
     messageLabel.Text = String.Format("Service {0} started.", serviceName); 
    } 

    private void StartServiceByName(string serviceName) 
    { 
     ServiceController serviceController = new ServiceController(serviceName); 
     serviceController.Start(); 
    } 
} 

然而,有一个进一步的事情 - 你需要有Web服务器有允许更改此服务 - 这通常只能通过管理权限完成。

0

尚未测试。

请尝试是否有效。您可以在btn点击事件中添加以下代码。

dim controller as new ServiceController 

controller.MachineName = "." //try the machine name 
controller.ServiceName = "service name" 
dim status as string = controller.Status.ToString 

' Stop the service 
controller.Stop() 

' Start the service 
controller.Start() 
0

根据网站帐户的权限,您可以启动/停止服务。

除了别人已经回答的内容外,您还可以用适当的参数将NET START掏空。

只要授予权限(我认为它必须是一个域帐户),您也可以对远程计算机执行此操作。