如何在C#mvc中停止或启动Windows服务?

时间:2016-04-29 10:40:00

标签: c# asp.net-mvc servicecontroller

我试过了        System.ServiceProcess.ServiceController        的System.Diagnostics.Process;

在我的网络表单中控制Windows服务。 使用System.ServiceProcess.ServiceController我将获得拒绝访问权限。

System.Diagnostics.Process我什么都没得到。我怎么能用我的网络表单启动/停止Windows服务呢?

3 个答案:

答案 0 :(得分:5)

  

以下是要完成的重点:

     

1您需要添加   应用程序中的System.ServiceProcess引用。此命名空间   保存ServiceController类以访问窗口服务。

     

2您需要先检查窗口服务的状态   明确地开始或停止它。

     

3默认情况下,IIS应用程序在ASP.NET帐户下运行   没有窗口服务的访问权限。非常非常   该解决方案的重要部分是:假冒。你需要   使用用户凭据模拟应用程序/部分代码   拥有访问窗口的适当权限和权限   服务。

请参阅asp.net中的此博客条目 还要看看这个https://stackoverflow.com/a/17497084/1641556

答案 1 :(得分:2)

Knelis是正确的,我认为你只需要另一个过程来做到这一点。也许你自己的Windows服务,在本地系统下运行,并提供wcf服务来控制Windows服务,你的网络应用程序可以调用wcf服务。

答案 2 :(得分:0)

请按照以下步骤启动/停止窗口服务:

1)要访问Windows服务,您需要在控制器中添加以下名称空间:

using System.ServiceProcess;

如果在添加上述命名空间时由于“找不到命名空间名称'ServiceController'”而出现错误,则需要使用“添加引用”进行添加。有关更多详细信息,请在此处查看我的博客

2)将以下代码添加到您的控制器中:

ServiceController service = new ServiceController("Test Windows Service");
service.Start();

它将启动您的服务。 来源:http://sforsuresh.in/starting-windows-services-c-mvc-4/