隐藏

IIS7.0中Process无法执行cmd,打开cmd程序出现问题

发布:2018/12/24 20:39:25作者:管理员 来源:本站 浏览次数:1224

最后解决方案是:将IIS里面你程序用到的程序池的高级设置中“启用32位应用程序”置为true,“加载用户配置文件”置为true。

要做个视频的转码
类似这个,E:\ffmpeg.exe -i  E:\11.mp4 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 E:\22.mp4
但是死活不执行啊。。权限具体在哪设置呢?iis7的。。我已经设置应用程序池为admin了
你这个操作要给服务器的E盘的Everyone用户赋读写权限。

try
            {
                //_log.Error(strFileName);

                StringBuilder Testurl = new StringBuilder("");
                ProcessStartInfo start = new ProcessStartInfo(Utils.GetMapPath("/bin/sms.exe"));//设置运行的命令行文件问ping.exe文件,这个文件系统会自己找到
                                                                                                //如果是其它exe文件,则有可能需要指定详细路径,如运行winRar.exe
                start.Arguments = Utils.GetMapPath(strFileName);//设置命令参数
                start.CreateNoWindow = true;//不显示dos命令行窗口
                start.RedirectStandardOutput = true;//
                start.RedirectStandardInput = true;//
                start.UseShellExecute = false;//是否指定操作系统外壳进程启动程序
                Process p = Process.Start(start);
                StreamReader reader = p.StandardOutput;//截取输出流
                string line = reader.ReadLine();//每次读取一行
                while (!reader.EndOfStream)
                {
                    Testurl.Append(line);
                    line = reader.ReadLine();
                }
                _log.Debug(Testurl.ToString());
                p.WaitForExit();//等待程序执行完退出进程
                p.Close();//关闭进程
                reader.Close();//关闭流
                Utils.DeleteFile(strFileName);
                return Testurl.ToString();
            }
            catch (Exception ex)
            {
                _log.Error("ProcessGetImgOcr", ex);
                return "";
            }