我正在尝试通过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 :(得分:4)
您的Web应用程序正在IIS用户的上下文中运行,它可能无法访问执行convert.exe。你可以尝试在特定用户下运行IIS(就像你,如果convert.exe适合你)或者以某种方式授予访问权限以让convert.exe运行。
答案 1 :(得分:2)
您可以将Stream附加到Process对象以捕获输出。
请参阅msdn doc