0
我使用C#在 停止IIS
- 啓動IIS
- 打開Internet Explorer自動化
我被困在第四步,因爲我必須在其他程序之後使用相同的端口。
我創建的線程將被調用來啓動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\"[email protected]"\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的任何想法?
不完全確定你的問題是什麼; IE關閉時'WaitForExit'是否正確返回?我可以問你的IISExpress是什麼嗎?有可能有更直接的方式來做你正在嘗試的東西。 – 2014-09-24 15:49:45
你見過http://stackoverflow.com/questions/4958799/stop-start-an-website-in-iis-6-0-and-7-0-programatically-using-msbuild – artm 2014-09-24 15:50:45
假設你的應用程序正在運行提升的特權級別是否考慮過從你的代碼執行這個命令行'net stop w3svc/Y'? – 2014-09-24 15:59:00