我正在开发一个使用 WinSCP .NET 程序集将 zip 文件(包含多个 pdf 文件)上传到远程 SFTP 服务器的解决方案。我不断得到
记录时出错,已关闭。
谁能告诉我如何解决这个错误。
根据这个https://gallery.technet.microsoft.com/Secure-FTP-Powershell-65a2f5c5/view/Discussions,我已经创建了日志文件。
以下课程是我正在使用的课程。
public class PSftp
{
public void PutFile(string localfile)
{
//Send Ftp Files - same idea as above - try...catch and try to repeat this code
//if you can't connect the first time, timeout after a certain number of tries.
var sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = ConfigurationManager.AppSettings["sFTPhost"],
UserName = ConfigurationManager.AppSettings["sFTPuid"],
Password = ConfigurationManager.AppSettings["sFTPpwd"],
PortNumber = int.Parse(ConfigurationManager.AppSettings["sFTPport"]),
SshHostKeyFingerprint = ConfigurationManager.AppSettings["sFTPhostkey"]
};
using (var session = new Session())
{
session.SessionLogPath = ConfigurationManager.AppSettings["sFTPlogPath"];
session.DisableVersionCheck = false;
session.DefaultConfiguration = false;
session.Open(sessionOptions); //Attempts to connect to your sFtp site
//Get Ftp File
var transferOptions = new TransferOptions
{
TransferMode = TransferMode.Binary,
FilePermissions = null,
PreserveTimestamp = false
};
//<em style="font-size: 9pt;">Automatic, Binary, or Ascii
//null for default permissions. Can set user,
//Group, or other Read/Write/Execute permissions.
//destination file to that of source file - basically change the timestamp
//to match destination and source files.
transferOptions.ResumeSupport.State = TransferResumeSupportState.Off;
//the parameter list is: local Path, Remote Path, Delete source file?, transfer Options
TransferOperationResult transferResult = session.PutFiles(localfile, ConfigurationManager.AppSettings["sFTPInboxPath"], false, transferOptions);
//Throw on any error
transferResult.Check();
//Log information and break out if necessary
};
}
}
//How to use the above class
public void SaveFiletoFtp(string source)
{
var pftp = new PSftp();
pftp.PutFile(source);
}