我以管理员用户身份运行控制台应用程序。我想使用C#重新启动IIS服务器。我做了这个:
public static void Stop()
{
string serviceName = "W3SVC";
var service = GetService(serviceName);
if (service == null) return;
ServiceController sc = new ServiceController(service.ServiceName);
sc.Stop();
} public static void Start()
{
string serviceName = "W3SVC";
var service = GetService(serviceName);
if (service == null) return;
ServiceController sc = new ServiceController(service.ServiceName);
sc.Start();
} {
return ServiceController.GetServices()
.Where(x => x.ServiceName == name).FirstOrDefault();
}问题是,当我停止服务器时,有时我得到这样的"visual studio即时调试器错误一个未处理的异常“,即使我的visual studio没有打开。我从visual studio中删除了此选项。但这让我思考--我是否以正确的方式重新启动?
为什么启动和停止我的方法需要5-6秒,而如果我从iis管理器重启服务器,它会重启1秒。
那么,从c#代码重新启动服务器的正确方法是什么呢?
发布于 2021-09-29 08:14:19
尝试使用此代码重新启动IIS。
using System.ServiceProcess;
using (ServiceController controller = new ServiceController())
{
controller.MachineName = “My local or remote computer name”;
controller.ServiceName = “IIS Service Name”; // i.e “w3svc”
if (controller.Status != ServiceControllerStatus.Running)
{
// Start the service
controller.Start();
Log.Debug(“IIS has been started successfully, now checking again for
webservice availability”);
}
else
{
// Stop the service
controller.Stop();
// Start the service
controller.Start();
Log.Debug(“IIS has been restarted successfully”);
}
}https://stackoverflow.com/questions/69357208
复制相似问题