请教大家.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