You can use ServiceController()
class in ASP.NET application but you have to impersonate a user that have rights to manage services.
ServiceController service = new ServiceController("PACSService");
if (service != null)
{
try
{
switch(instruction)
{
case SerwerRequest.Start:
if (service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10));
}
break;
case SerwerRequest.Stop:
if (service.Status == ServiceControllerStatus.Running)
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(10));
}
break;
case SerwerRequest.Restart:
if (service.Status == ServiceControllerStatus.Running)
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(8));
}
if (service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(8));
}
break;
default:
break;
}
return Json(new { status = 1 }, JsonRequestBehavior.AllowGet);
}
catch (System.ServiceProcess.TimeoutException exc)
{
return Json(new { status = -4 }, JsonRequestBehavior.AllowGet);
}
catch
{
return Json(new { status = -99 }, JsonRequestBehavior.AllowGet);
}
}
else
{
return Json(new { status = -6 }, JsonRequestBehavior.AllowGet);
}