首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.NET调用Process的有关问题

2013-09-11 
请教大家.NET调用Process的问题Dear all, 有个关于.NET调用Process的问题,想请教下大家: 需求:通过Web上的

请教大家.NET调用Process的问题
Dear all,
 
有个关于.NET调用Process的问题,想请教下大家:
 
需求:通过Web上的一个按键(该Web在ServerA)上,点击后将本地一个文件传到对端Linux的服务器ServerB上。
 
过程:第一步:建立了一个bat批处理文件,经测试,双击该bat文件,可以正常上传至ServerB。
      第二步: 将该文件放到程序里调用(Process类),经测试,该bat文件已被调用,但并没有完成上传ServerB功能。
 
不太清楚问题在哪里。。谢谢!
 
PS:Web ServerA配置:Windows Server 2008 R2 64bit;IIS 7.5;
       对端Linux ServerB配置:Ubuntu Linux 64 bit。

-------------------------------------
 public static void ExecutePsftp(string strCommand)
        {
            //System.Diagnostics.Process.Start(@"C:\HCSSpreadsheet\command\BatchUploadExcel.bat");
            int ExitCode;
            ProcessStartInfo ProcessInfo;
            Process Process;

            ProcessInfo = new ProcessStartInfo("cmd.exe");
            ProcessInfo.CreateNoWindow = true;
            ProcessInfo.UseShellExecute = false;
            ProcessInfo.WorkingDirectory = @"C:\Users\Administrator";
            ProcessInfo.Arguments = "/c C:\\TestSpreadsheet\\PassedCombined.xls";
            Process = Process.Start(ProcessInfo);
            Process.WaitForExit();

            ExitCode = Process.ExitCode;
            Process.Close();
        }
[解决办法]
start之后干嘛又把process关掉?
------解决方案--------------------


直接执行就行了,用不着调用cmd.exe。
[解决办法]
调用的地方改下,看看输出是什么。
ProcessInfo.RedirectStandardOutput = true;
ProcessInfo.RedirectStandardError = true;
Process = Process.Start(ProcessInfo);
string output = Process.StandardOutput.ReadToEnd();
string err = Process.StandardError.ReadToEnd();
// write to response or log file

热点排行