Сначала необходимо добавить ссылку на сборку System.ServiceProcess. Следующий код дает вам примерно то, что вы хотите сделать (я использую элемент управления Label под названием messageLabel в следующем):
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();
}
}
Однако есть еще одна вещь - вам нужно, чтобы веб-сервер имел разрешение на изменение этой службы, что обычно можно сделать только с правами администратора.