У меня есть программа, которая создаст новый веб-сайт в IIS 6. Как мне выполнить выполнение команд до тех пор, пока оно не закончится. В настоящее время он не ждет, поэтому сайт не создается.Выполнение команды из C# и ожидания завершения завершения
Я не могу использовать файл .bat, потому что DirectoryPath, SiteName, AppPoolName и PortNumber обеспечиваются путем использования во время работы приложения.
Данный код выполнен на фоне потока, а не на основном потоке.
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