我有一个程序将在IIS 6中创建一个新网站。 如何让我的命令执行等待完成。 目前它不会等待,所以网站不会被创建。从C#执行命令并等待完成执行
因为目录路径,SITENAME,AppPoolName,并PORTNUMBER通过运行应用程序时使用提供我不能使用.bat文件。
下面的代码在后台线程上执行,而不是在主线程上执行。
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = Environment.SystemDirectory + "/cmd.exe";
startInfo.Arguments = @"cd %systemroot%\system32" + " & " + @"cscript iisweb.vbs /create " + DirectoryPath + " " + SiteName + " /ap " + AppPoolName + " /b " + PortNumber + " & " + "exit";
process.StartInfo = startInfo;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
WaitForExit? http://msdn.microsoft.com/en-us/library/system.diagnostics.process.waitforexit.aspx –
我有WaitForExit。但它不起作用。它是否需要使用后台线程做些什么? – Butters