【发布时间】:2009-12-01 12:11:55
【问题描述】:
我有一个用vb编写的网页,我需要启动一个将安装在服务器中的windows服务。
【问题讨论】:
我有一个用vb编写的网页,我需要启动一个将安装在服务器中的windows服务。
【问题讨论】:
您首先需要添加对 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();
}
}
但是,还有一件事 - 您需要让网络服务器有权更改此服务 - 这通常只能通过管理权限来完成。
【讨论】:
尚未测试。
请尝试是否有效。您可以在 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()
【讨论】:
根据网站帐号所拥有的权限,您可以启动/停止服务。
除了其他人已经回答的内容,您还可以使用适当的参数来壳出NET START。
只要授予权限,您也可以对远程计算机执行此操作(我认为它必须是域帐户)。
【讨论】: