2017-10-06 181 views
0

I持って私のasp.netのコンソールアプリケーション内で、次のコード: -は、次のエラーが「StandardInがリダイレクトされていない」上げ

var processInfo = new ProcessStartInfo("cmd.exe"); 
processInfo.CreateNoWindow = true; 
processInfo.UseShellExecute = false; 
processInfo.RedirectStandardError = true; 
processInfo.RedirectStandardOutput = true; 

var process = Process.Start(processInfo); 
process.StandardInput.WriteLine("nslookup"); 
process.StandardInput.WriteLine("set type=mx"); 
process.StandardInput.WriteLine(domainname); 

process.OutputDataReceived += (object sender, DataReceivedEventArgs e) => 
Console.WriteLine("output>>" + e.Data); 
process.BeginOutputReadLine(); 

process.ErrorDataReceived += (object sender, DataReceivedEventArgs e) => 
Console.WriteLine("error>>" + e.Data); 
process.BeginErrorReadLine(); 

process.WaitForExit(); 

Console.WriteLine("ExitCode: {0}", process.ExitCode); 
process.Close(); 

nslookup 
set type=mx 
domainname 

しかし、私はこの例外StandardIn has not been redirectedを得たprocess.StandardInput.WriteLine("nslookup");コードは、この行に到達したとき - :私は、次のコマンドを実行し、結果を取得しようとしています。

答えて

1

エラーはかなり説明的である:あなたが行で標準エラー出力と標準出力をリダイレクトしたStandardIn has not been redirected

processInfo.RedirectStandardError = true; 
processInfo.RedirectStandardOutput = true; 

しかし、エラーはあなたがあなたはできStandardIn

をリダイレクトしない持って言うように標準入力を次のようにリダイレクトしてください:

processInfo.RedirectStandardInput = true; 
関連する問題