1

我正在尝试通过 C# 中的 Process 类调用 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 的路径肯定没问题...

4

2 回答 2

4

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

于 2012-06-08T19:33:56.333 回答
2

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

请参阅msdn 文档

于 2012-06-08T19:30:58.533 回答