问题描述
stringcommandText="expusername/password@orclfile=d:/%Date:~0,10%.dmplog=d:/%Date:~0,10%.log";Processprocess=newProcess();//开启新进程process.StartInfo.FileName="cmd.exe";//打开运行cmd//process.StartInfo.Arguments=commandText;//要运行的命令process.StartInfo.UseShellExecute=false;//关闭shell的使用process.StartInfo.RedirectStandardInput=true;//重定向标准输入process.StartInfo.RedirectStandardOutput=true;//重定向标准输出process.StartInfo.RedirectStandardError=true;//重定向错误设置process.StartInfo.CreateNoWindow=true;//设置不显示cmd运行界面try{process.Start();//启动进程process.StandardInput.WriteLine(commandText);process.StandardInput.WriteLine("exit");process.WaitForExit();if(process.HasExited){intiExitCode=process.ExitCode;if(iExitCode==0)//正常完成{strOutput="执行成功";}else//执行有错{strOutput="执行失败";}}}catch(Exceptione){strOutput=e.Message;}finally{process.Close();}调用这个方法执行时,当导出的数据库较小时,程序正常执行导出功能,所调用的CMD.EXE、EXP.EXE程序也自动退出,但当导出的数据库较大时,调用的CMD命令无法执行,好像卡住不动了(程序卡在这个语句不动了:process.WaitForExit();),调用的程序无法正常退出,此时若重启IIS后,在任务管理器中强制结束CMD.EXE后,此时EXP命令会继续自动执行命令,完成后自动退出,再查看导出的DMP文件是正常的,此问题如何解决,请高手门如何解决?本人感激不尽!
解决方案
解决方案二:
楼主这个问题还解决了?我也遇到了相同问题,卡壳了好像是备份到52.6M吧就无响应了强制关闭后后台CMD正常往下执行并退出,如果找到解决还请回下
解决方案三:
有时间限制么。还是占用的资源不饿强制关闭?
解决方案四:
Process.start("exp.exe","user/password@数据库file=......");这样好像可以
解决方案五:
mark学习下备份
解决方案六:
你好,上次那个备份ORACLE数据库,备到一半卡住的总题你解决没有,我现在也遇到了,如果解决了请在你那个贴子把正确方法也贴出来,大家看一下.谢谢..
解决方案七:
冷备份,热备份。不知道说那个鬼东西。