7

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

在我的 Web 表单中控制 Windows 服务。随着System.ServiceProcess.ServiceController我得到拒绝访问异常。

System.Diagnostics.Process一无所获。如何使用我的 Web 表单启动/停止 Windows 服务,知道吗?

4

3 回答 3

6

以下是要完成的要点:

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

2 在显式启动或停止它之前,您需要检查窗口服务的状态。

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

请参阅asp.net中的此博客条目 并查看此https://stackoverflow.com/a/17497084/1641556

于 2016-04-29T10:51:02.963 回答
2

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

于 2016-04-29T10:47:17.397 回答
-1

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

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

using System.ServiceProcess;

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

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

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

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

于 2018-09-04T11:17:59.607 回答