2012-06-08 2 views
1

은이 같은 다른 형식으로 특정 이미지를 변환하는 C#을에서 Convert.exe를 저점 프로세스 클래스를 호출하는 것을 시도하고있다 : 그것은 명령 프롬프트를 열고 즉시 종료 왜 이해가 안내 프로세스가 빈 창을 열어 즉시 닫는 이유는 무엇입니까?

File.WriteAllBytes(inputFilePath, Convert.FromBase64String(image.Content)); 
Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Error(new Exception("Succesfully wrote the image to: " + inputFilePath))); 

var proc = new Process(); 
proc.StartInfo.Arguments = string.Format("{0} {1}", inputFilePath, outputFilePath); 

proc.StartInfo.FileName = @"c:\Program Files (x86)\ImageMagick-6.7.7-Q16\convert.exe"; 
proc.StartInfo.CreateNoWindow = false; 
proc.StartInfo.UseShellExecute = false; 
proc.Start(); 
proc.WaitForExit(); 

.. 코드에 오류가 있습니까? convert.exe에 대한 경로는 확실히 괜찮습니다 ...

+0

아마 오류가 발생하여 즉시 종료되었습니다. (당신은 콘솔 앱을 사용하고있는 것입니다.) 출력이 사라지기 전에 결과를 볼 수있는 기회는 언제입니까? –

+0

명령 프롬프트를 전혀 표시하고 싶지 않다고 말하고 있습니까, 아니면 빨리 닫아야한다고 말하고 있습니까? –

+0

입력 경로 및/또는 출력 경로에 공백이있을 수 있으며 올바른지 확인하고 있습니까? ... 수동으로 명령 줄에서 실행할 수 있는지 테스트하려면 실행할 파일과 콘솔 경로를 출력해야합니다. –

답변

2

출력을 캡처하기 위해 Process 객체에 Stream을 연결할 수 있습니다.

msdn doc

+0

저는 변환 작업이 훌륭하게 작동한다는 것을 알았습니다. 그러나 실제로 출력물을 캡처하고 싶었 기 때문에 당신이 내 필요를 만족시키는 답을 표시 할 것입니다. –

4

당신의 웹 응용 프로그램이 IIS 사용자의 컨텍스트에서 실행되는 참조가 Convert.exe를 실행에 액세스 할 수 없습니다. 특정 사용자 (예 : convert.exe가 작동하는 경우)에서 IIS를 실행하거나 convert.exe가 실행될 수 있도록 액세스 권한을 부여 할 수 있습니다.

+0

좋아, 만약 당신이 downvote거야, 적어도 내가 왜 알려주십시오. 그것은 완벽하게 실행 가능한 가능성입니다. –

+0

나는이 정당하지 않은 downvote를 취소하도록 upvoted. – guiomie

관련 문제