为什么我的流程只是打开一个空白窗口并立即关闭它?

时间:2012-06-08 19:24:14

标签: c# imagemagick

我正在尝试通过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的路径确实可以......

2 个答案:

答案 0 :(得分:4)

您的Web应用程序正在IIS用户的上下文中运行,它可能无法访问执行convert.exe。你可以尝试在特定用户下运行IIS(就像你,如果convert.exe适合你)或者以某种方式授予访问权限以让convert.exe运行。

答案 1 :(得分:2)

您可以将Stream附加到Process对象以捕获输出。

请参阅msdn doc