2012-03-13 3 views
1

System.Diagnostics.Process 개체를 사용하여 aspx 페이지를 통해 "robocopy.exe"와 같은 프로그램을 실행하려고합니다..aspx 페이지에서 명령 줄을 통해 프로그램을 실행하는 방법

내 코드는 다음과 같습니다

Process si = new Process(); 
si.StartInfo.UserName = "testuser"; 
si.StartInfo.Password = password; 
si.StartInfo.FileName = "cmd.exe"; 
si.StartInfo.UseShellExecute = false;  

si.StartInfo.Arguments = "c/ robocopy.exe"; 

si.Start(); 
string output = si.StandardOutput.ReadToEnd(); 
si.Close(); 

Label1.Text = output; 

문제는 cmd.exe를 프로세스가 올바르게 시작되었는지, 그러나 아무 일도 발생하지 않습니다. roboxopy.exe의 인수는 아마도 cmd 프로세스로 전달되지 않을 것입니다! 내가 뭘 잘못했는지에 대한 어떤 생각?

+0

왜 cmd.exe를 실행하려고합니까? 왜 robocopy.exe를 직접 실행하지 않습니까? cmd.exe 대신 StartInfo.FileName에 robocopy 경로를 전달하십시오. –

+0

'cmd'에서이 실행 파일을 호출하고 싶다면'c /'대신'/ c'라고 써야합니다. –

+0

전용 서버가 있어야하며 exe 파일을 실행하거나 명령을 실행하도록 구성해야합니다! –

답변

5

권한 문제와 같은 소리가납니다. 일반적으로 IIS 프로세스가 실행되는 기본 asp_net 계정에는 서버에 대한 실행 권한이 없습니다. 그 이유는 거대한 보안 구멍이기 때문입니다. 별도의 실행 파일 실행을 포함하지 않는 다른 방법이 있다면 성취하려고 시도하고있는 것에 대해 생각하는 것이 좋습니다.

관련 문제