日期:2014-05-17  浏览次数:20524 次

使用FlashPaper实现文件转换swf功能,在网页上预览,发布iis 无法执行
服务器环境
windows seriver 2003 sp2 
iis 6.0
.net framework 4.0

在网上找到的转换格式的方法
C#代码

filePath = MapPath(filePath);
string swfFilePath = filePath.Substring(0, filePath.LastIndexOf(".")) + ".swf";
System.Diagnostics.Process pc = new System.Diagnostics.Process();
pc.StartInfo.FileName = @"D:\Program Files\FlashPaper\FlashPrinter.exe";
pc.StartInfo.Arguments = string.Format("{0} -o {1}", filePath, swfFilePath);
pc.StartInfo.CreateNoWindow = true;//不创建窗口 
pc.StartInfo.UseShellExecute = false;//不使用系统外壳程序启动 
pc.StartInfo.RedirectStandardInput = false;
pc.StartInfo.RedirectStandardOutput = false;
pc.StartInfo.RedirectStandardError = true;
pc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
pc.Start();
pc.WaitForExit();
pc.Close();
pc.Dispose();


在iis上运行 程序跑到pc.WaitForExit();这句 无任何异常,无法实现转换格式的功能

网上说用vs调试是 任务管理器显示两个flashpager.exe的进程  如果是权限问题  在iis启动时 只显示一个进程,并且 是networkserver?
为什么我在iis下 一个这样的进程也没有

还有是不是 iis没有Process 操作cmd命令的权限吗? 
求解,  急呀

------解决方案--------------------
不要想当然的再命令行里写命令
断点复制程序生成的然后粘贴到命令行里试
------解决方案--------------------
引号是要加文件路径2边的,比如你转换


FlashPrinter.exe D:\Program Files\FlashPaper\a.doc
这样写就是错误的,需要写成
FlashPrinter.exe "D:\Program Files\FlashPaper\a.doc"

你确信路径没错,那就是权限的问题。一般情况下,不成功是因为权限问题


另外,
FlashPrinter.exe
这个东西不是很好的,即使手工转换,有时候也不能100%成功
------解决方案--------------------
引用:
我写的路径 在vs调试下 正常运行, 只是到了iis就不行了, 应该不是路劲问题吧?
谢谢了 我先试试


以前做过,vs里面没问题,iis里面不行。
肯定是权限问题,这个站点如果用管理员账号来跑的话就可以了。