2

IIS 6 で新しい Web サイトを作成するプログラムがあります。コマンドの実行を完了するまで待機させるにはどうすればよいですか。現在は待機しないため、Web サイトは作成されません。

アプリケーションの実行中に使用してDirectoryPathSiteNameAppPoolName、および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();
4

2 に答える 2

4

私は問題が何であるかを理解しました。

startInfo.Arguments = @"cd %systemroot%\system32" + " & " + @"cscript iisweb.vbs /create " + DirectoryPath + " " + SiteName + " /ap " + AppPoolName + " /b " + PortNumber + " & " + "exit";

/CstartInfo.Arguments の先頭に追加したところ、問題なく機能しました。

これがうまくいった答えです。

 startInfo.Arguments = @"/C cd %systemroot%\system32" + " & " + @"cscript iisweb.vbs /create " + DirectoryPath + " " + SiteName + " /ap " + AppPoolName + " /b " + PortNumber + " & " + "exit";
于 2013-05-29T12:57:38.547 に答える
0

コマンドをメイン スレッドで実行しますか? もしそうなら、バックグラウンド スレッドが終了するまで待ちませんか?

于 2013-05-28T20:22:07.800 に答える