[英]Stopping IIS in C#
我正在使用C#自动化一些过程
我被困在第四步,因为之后我必须将同一端口用于其他过程。
我创建了一个将被称为启动IIS的线程:
public class MyThread
{
//thread to start IIS
public static void Thread1()
{
//thread for running IIS
using (Process proc = new Process())
{
proc.StartInfo.FileName = @"C:\Program Files\IIS Express\iisexpress.exe";
proc.StartInfo.Arguments = @"/path:""c:\windows\Microsoft.NET\Framework\v4.0.30319\ASP.NETWebAdminFiles"" /vpath:/asp.netwebadminfiles /port:61569 /clr:4.0 /ntlm";
//proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.WaitForExit();
//output from the process run
Console.Out.WriteLine(proc.StandardOutput.ReadToEnd());
}
}
}
打开IE的代码是:
Thread thread1 = new Thread(new ThreadStart(MyThread.Thread1));
thread1.Start();
using (Process proc1 = new Process())
{
proc1.StartInfo.FileName = @"C:\Program Files\Internet Explorer\iexplore.exe";
proc1.StartInfo.Arguments = @"http://localhost:61569/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=C:\Users\"+userName+@"\Documents\Visual Studio 2013\Projects\NN\&applicationUrl=/";
proc1.StartInfo.UseShellExecute = false;
proc1.StartInfo.RedirectStandardOutput = true;
proc1.StartInfo.CreateNoWindow = true;
proc1.Start();
proc1.WaitForExit();
//output from the process run
Console.Out.WriteLine(proc1.StandardOutput.ReadToEnd());
}
我试图创建另一个线程来杀死/中止原始线程,但这是行不通的。 我还尝试在控制台末尾写“ Q”,但这也无济于事。
关于关闭浏览器时如何停止IIS的任何想法?
您不应该取消停止IIS的过程。 将地毯拉到下面并不是一件好事,此外,如果服务具有任何重新启动操作,则它将重新开始重新备份。
使用ServiceController( http://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicecontroller ( v = vs.110 ) .aspx )启动和停止适当的服务。
还有其他控制IIS的方法,例如使用WMI(我认为现在已弃用),但是使用ServiceController应该足以完成您的任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.