繁体   English   中英

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

[英]How to stop or start Windows Service in C# mvc?

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

在我的Web表单中控制Windows服务。 使用System.ServiceProcess.ServiceController我得到了Access Denied Exception。

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

以下是要完成的重点:

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

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

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

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

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

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

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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM