从asp.net网页运行Windows服务

时间:2009-12-01 12:11:56

标签: asp.net windows-services

我有一个用vb编写的网页,我需要启动一个将安装在服务器上的Windows服务。

3 个答案:

答案 0 :(得分:0)

尚未测试。

如果有效,请尝试。你可以在btn click事件中添加以下代码。

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

答案 1 :(得分:0)

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

除了其他人已经回答的内容之外,您还可以使用适当的参数来NET START

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

答案 2 :(得分: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服务器有权更改此服务 - 这通常只能通过管理权限来完成。