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

问题描述 投票:7回答:3

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

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

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

c# asp.net-mvc servicecontroller
3个回答
5
投票

以下是要完成的重点:

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

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

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

请参阅asp.net的博客文章,并查看此https://stackoverflow.com/a/17497084/1641556


2
投票

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


0
投票

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

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

using System.ServiceProcess;

如果您在添加上述namesapce时遇到“命名空间名称'无法找到ServiceController'时出错”,则需要使用“添加引用”添加。有关详细信息,请参阅我的博客

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

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

它将开始您的服务。资料来源:http://sforsuresh.in/starting-windows-services-c-mvc-4/

© www.soinside.com 2019 - 2024. All rights reserved.