<分区>
我需要在远程机器上停止 IIS,然后做一些工作,然后在工作完成后再次启动 IIS 服务。我正在尝试使用 C# 代码来执行此操作。我已经看到一些关于通过代码在远程机器上启动 IIS 的类似问题。但是我无法从中获得任何可行的解决方案。一些关于如何执行启动和停止操作的清晰 C# 代码将非常有帮助。
<分区>
我需要在远程机器上停止 IIS,然后做一些工作,然后在工作完成后再次启动 IIS 服务。我正在尝试使用 C# 代码来执行此操作。我已经看到一些关于通过代码在远程机器上启动 IIS 的类似问题。但是我无法从中获得任何可行的解决方案。一些关于如何执行启动和停止操作的清晰 C# 代码将非常有帮助。
最佳答案
Microsoft.Web.Administration
命名空间包含您管理 IIS 所需的内容。查看:http://msdn.microsoft.com/en-us/library/microsoft.web.administration%28VS.90%29.aspx .
但是,如果您只想停止和启动服务,您可以使用 Service.Controller
ServiceController service = new ServiceController(serviceName);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
Service.Controller
类页面应该包含您需要的所有信息。找到它,http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx
这是一个可用于启动服务的完整示例:
public static void StartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
// ...
}
}
查看上面的链接以获取更多文档。
您可以按如下方式连接到远程服务器:
ServiceController svc = new ServiceController("Service", "COMPUTERNAME");
如果您在远程服务器上需要一组不同的权限,则需要做更多的工作。看到这个问题,Starting remote Windows services with ServiceController and impersonation .
关于c# - 通过 C# 代码在远程机器上启动和停止 IIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831477/
相关文章:
c# - 流利的断言 : Assert Collection contains Element that "IsEquivalentTo"
c# - MVC Web API 2 - 在操作上使用自定义属性
c# - 如何为 Winforms RichTextBox 设置交替的线条颜色?
IIS 网站停止响应,iisreset 给出 "The data is invalid. <2147942413, 8007000d>"
asp.net - SignalR 不在本地 IIS 上工作,但在 IIS Express 上工作
c# - 如何检查是否已安装 IIS 6 Management Compatibility 功能?