我需要通過C#代碼執行SFTP進程。我正在使用Windows服務。以下是我正在使用的代碼。Windows服務中的SFTP
WebCash.writeToFile(WebCash.outerbatchpath, command);
WebCash.writeToFile(WebCash.outerbatchpath, "exit");
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", "/c "+WebCash.outerbatchpath);
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = psi;
p.Start();
p.WaitForExit();
psi = null;
WebCash.writeToFile(WebCash.GetErrorLog(), DateTime.Now.ToString() + "- Running SFTP end - " + p.ExitCode);
return p.ExitCode;
雖然試圖調試上面的代碼調試器不能夠通過p.WaitforExit()
函數(即)服務沒有p.WaitforExit()
之後執行。
我在我的外部運行下面的命令(SFTP)。
psftp -b D:\Source_Data\SFTP\innerbatch.bat -l username -i D:\privatekey.ppk @servername
內蒙古批次包含以下命令
put D:\Source_Data\SFTP\FileToTransfer.xml
我需要退出代碼也得到了錯誤。請幫助。
我已經更新我的答案。 – 2014-10-07 07:38:45
將p.WaitForExit()更改爲p.StandardOutput.ReadToEnd()不起作用。同樣的結果:( – user3859666 2014-10-07 14:07:51
好的,比它很可能是由於某些提示,請參閱我的編輯 – 2014-10-07 15:33:44