string commandText = "exp username/password@orcl file=d:/%Date:~0,10%.dmp log=d:/%Date:~0,10%.log";
Process process = new Process(); //开启新进程
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)
{
int iExitCode = process.ExitCode;
if (iExitCode == 0) //正常完成
{
strOutput = "执行成功";
}
else //执行有错
{
strOutput = "执行失败";
}
}
}
catch(Exception e)
{
strOutput = e.Message;
}
finally
{
process.Close();
}
调用这个方法执行时,当导出的数据库较小时,程序正常执行导出功能,所调用的CMD.EXE、EXP.EXE程序也自动退出,但当导出的数据库较大时,调用的CMD命令无法执行,好像卡住不动了(程序卡在这个语句不动了:process.WaitForExit();),调用的程序无法正常退出,此时若重启IIS后,在任务管理器中强制结束CMD.EXE后,此时EXP命令会继续自动执行命令,完成后自动退出,再查看导出的DMP文件是正常的,此问题如何解决,请高手门如何解决?本人感激不尽!
Process process = new Process(); //开启新进程
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)
{
int iExitCode = process.ExitCode;
if (iExitCode == 0) //正常完成
{
strOutput = "执行成功";
}
else //执行有错
{
strOutput = "执行失败";
}
}
}
catch(Exception e)
{
strOutput = e.Message;
}
finally
{
process.Close();
}
调用这个方法执行时,当导出的数据库较小时,程序正常执行导出功能,所调用的CMD.EXE、EXP.EXE程序也自动退出,但当导出的数据库较大时,调用的CMD命令无法执行,好像卡住不动了(程序卡在这个语句不动了:process.WaitForExit();),调用的程序无法正常退出,此时若重启IIS后,在任务管理器中强制结束CMD.EXE后,此时EXP命令会继续自动执行命令,完成后自动退出,再查看导出的DMP文件是正常的,此问题如何解决,请高手门如何解决?本人感激不尽!
解决方案 »
- 使用TabContainer后,在aspx页添加控件,designer.cs不生成相应代码,aspx.cs页无法访问控件,怎么回事呢?
- asp.net mvc关于包涵公共页的问题
- 哪位前辈给写出以下几个正则表达式.
- 分不够了!但请各位大虾帮帮忙!重写了一个控件,但是不知道如何使用?
- asp.net中同一页面中html控件和服务器控件怎样使用呢
- 还是得问,按钮按下后如何是其他按钮不起作用,不能disabled
- 动态生成的TextBox的 .Width属性怎样使其值Width为 100%?
- 请问怎样才能加入QQ的.net讨论组:1169566,听说这个组特别好,请知道的朋友推荐一下,谢谢!
- listbox有没有双击事件
- 隐藏uploadify控件按钮 js触发选择文件事件
- asp.net 在不同的服务器获取的时间不统一
- 应该是个小问题,但是不知道在哪儿!求帮助!
强制关闭后 后台CMD正常往下执行并退出,如果找到解决还请回下
这样好像可以