请教一下各位
前几天写了一段c#下备份mysql数据库的命令~
string strCmd = "mysqldump -uroot -p密码 mysqldb 〉C:\\backup.sql";
        
        Process vProcess = new Process();
        vProcess.StartInfo.FileName = "cmd.exe ";
        vProcess.StartInfo.UseShellExecute = false;
        vProcess.StartInfo.RedirectStandardInput = true;
        vProcess.StartInfo.RedirectStandardOutput = true;
        vProcess.StartInfo.RedirectStandardError = true;
        vProcess.StartInfo.CreateNoWindow = false;
        vProcess.Start();
        vProcess.StandardInput.WriteLine(strCmd);
        vProcess.StandardInput.WriteLine("exit ");
        //Response.Write(vProcess.StandardOutput.ReadToEnd());在vs下调试会生成一个备份文件backup.sql
但是今天通过iis发布这个网页以后发现,没法生成备份文件了~
经过调试,通过Response.Write(vProcess.StandardOutput.ReadToEnd());观察输出结果
发现cmd调用了mysqldump -uroot -p密码 mysqldb 〉C:\\backup.sql这条命令,那么为什么没有生成备份文件呢?
谢谢各位帮忙了
第一次发帖实在没有分,不好意思了

解决方案 »

  1.   

    没有输出文件,应该是执行不成功,那么,你看看运行后CMD返回了什么信息呀。推测,可能是因为你的 .UseShellExecute = false ,所以,mysqldump 应该是加上完整的路径系统才能找到吧。只是推测而已。
      

  2.   

    strCmd = "mysqldump -uroot -p密码 mysqldb 〉C:\\backup.sql"
    这句话生成了一个备份文件backup.sql啊,应该是有输出文件的,vs下调试是能生成的这个文件的~CMD返回的内容
    Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>mysqldump -uroot -p1234 mysqldb > C:\backup.txt   C:\WINDOWS\system32>exit 
      

  3.   

    IIS用户无法访问C盘吧,加个权限试试。
      

  4.   

    非常感谢,解决了~
    C:\\backup.sql 改为  C:\\xxx\\backup.sql就可以了
    应该是iis用户没有存放到c盘根目录下的权限吧~
    可惜没有分数,不能感谢了