Вы можете использовать System.ServiceProcess.ServiceController (получил идею из этого ответа ), запустив или остановив следующие службы:
-Windows Service Activation Service (WAS)
-World Wide Web Publishing Service (W3SVC)
Вот код, который сделает эту работу:
//stop iis (like running "IISReset /Stop")
ResetService("WAS", false);
ResetService("W3SVC", false);
//start iis (like running "IISReset /Start")
ResetService("WAS", true);
ResetService("W3SVC", true);
private static void ResetService(string name, bool start)
{
using (var service = new System.ServiceProcess.ServiceController(name))
{
if (start && service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
}
else if (!start && service.Status == ServiceControllerStatus.Running)
{
service.Stop();
}
}
}
Что касается других команд IISReset, вы можете легко запрограммировать время ожидания. И чтобы перезагрузить компьютер, проверьте этот ответ . Дайте мне знать, если вам нужно больше деталей.
Но если вам не достаточно вечеринки, вы всегда можете выполнить сценарии Power Shell в C #, используя эту технику (довольно просто, если вам просто нужно закончить).