我在ASP.NET程序中使用FlashPrinter.exe将word,excel,pdf,ppt转换成swf,在本地运行
(localhost)时,全部能转换成功,但是放在IIS上,却只有pptx能转换成功,其中在转换docx和
xlsx的文件时,直接卡死。而转换pdf却执行完毕后没有生成swf文件。
我已经将FlashPrinter.exe所在文件夹赋予了权限,Network Service账号添加至administrators
组,IIS的应用程序池中的标识预定义账户修改成本地系统。并且在IIS上能转换pptx,应该不是权
限问题。我写了两个方法,但是两个方法都出现这样的问题,代码如下,在线等,有答案马上结
贴,本人结贴率100%。谢谢了!
private void ConvertSwf(string inputPath, string outputPath)
{
Process p = new Process();
try
{
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;//不适应系统外壳程序启动
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;//不创建窗口
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
string strOutput = null;
//string inputPath = Server.MapPath("~//11.docx");
//string outputPath = Server.MapPath("~//11.swf");
//D:\Asp.NetPro\PPTToSwf\swftools\FlashPaper\FlashPaper2.2\\FlashPrinter.exe
//D:\\Asp.NetPro\\PPTToSwf\\swftools\\FlashPaper2.2\\FlashPrinter.exe
string s = "D:\\Asp.NetPro\\PPTToSwf\\swftools\\FlashPaper\\FlashPaper2.2\\FlashPrinter.exe "
+ "\"" + inputPath + "\" -o \"" + outputPath + "\"";
p.StandardInput.WriteLine(s);
p.StandardInput.WriteLine("exit");
strOutput = p.StandardOutput.ReadToEnd();
Console.WriteLine(strOutput);
p.WaitForExit();