使用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里面不行。
肯定是权限问题,这个站点如果用管理员账号来跑的话就可以了。