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

Ali*_*zun 7 c# asp.net-mvc servicecontroller

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

在我的Web表单中控制Windows服务.随着System.ServiceProcess.ServiceController我获得访问被拒绝的例外.

随着System.Diagnostics.Process我什么也没得到.如何使用我的网络表单启动/停止Windows服务,任何想法?

Els*_*han 6

以下是要完成的重点:

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

2在明确启动或停止窗口服务之前,您需要检查窗口服务的状态.

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

请参阅asp.net的这篇博客文章 并查看此/sf/answers/1224795911/

  • 此解决方案需要您站点上的Windows身份验证.如果可以,这是一个体面和安全的解决方案. (2认同)

小智 2

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