J'ai un programme qui va créer un nouveau site web dans IIS 6. Comment puis-je faire en sorte que l'exécution des commandes attende qu'elle se termine ? Actuellement, elle n'attend pas, et le site Web n'est pas créé.
Je ne peux pas utiliser un fichier .bat car le DirectoryPath , Nom du site , AppPoolName y Numéro de port sont fournis par l'utilisation pendant l'exécution de l'application.
Le code ci-dessous est exécuté sur un thread d'arrière-plan et non sur le thread principal.
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();