ASP.Net 웹 응용 프로그램의 명령 프롬프트를 통해 명령을 실행하려고합니다. 웹 서버의 작업 관리자에서 프로세스 시작을 볼 수 있지만 프로세스가 그냥 앉아서 끝나지 않고 지정한 명령을 실행하지도 않습니다.Process.Start()를 통해 호출 할 때 "cmd.exe/C 명령"이 종료되지 않는 이유는 무엇입니까?
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " +command;
startInfo.UserName = "myuser";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.Domain = "mydomain";
startInfo.CreateNoWindow = true;
String pass = "mypass";
System.Security.SecureString secPass = new System.Security.SecureString();
foreach (char c in pass.ToCharArray())
{
secPass.AppendChar(c);
}
secPass.MakeReadOnly();
startInfo.Password = secPass;
process.StartInfo = startInfo;
process.Start();
//output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
표준 출력을 읽었을 때와 읽지 않은 경우 모두 시도했습니다.
작업 관리자를 통해 프로세스가 종료 될 때까지 응용 프로그램이 process.WaitForExit();
에 멈춰 있습니다.
표준 출력을 읽으려고한다면 표준 출력이 무엇인지 살펴 보았는가? 표준 오류도 읽으십시오. 어떤 종류의 오류 메시지가 표시 될 수 있습니다. 아마도 "계속하려면 아무 키나 누르십시오 ..."라고하는 메시지 나 그 효과가있는 메시지 일 수도 있습니다. – GWLlosa
@ GWLosa 표준 출력과 표준 오류는 모두 비어 있습니다. 그 "Push any key ..."에 대해 생각 했으므로 표준 입력에 문자를 쓰려고 시도했지만 여전히 아무것도 쓰지 않았습니다. –
왜 cmd를 통해 실행합니까? 왜 직접 실행하지 않습니까? –