WinSCP .NET 程序集 - 记录期间发生错误。它已被关闭
WinSCP .NET assembly - Error occurred during logging. It's been turned off
我正在开发一个使用 WinSCP .NET 程序集将 zip 文件(包含多个 pdf 文件)上传到远程 SFTP 服务器的解决方案。我不断收到
Error occurred during logging, it's been turned off.
谁能告诉我如何解决这个错误。
根据这个https://gallery.technet.microsoft.com/Secure-FTP-Powershell-65a2f5c5/view/Discussions,我创建了日志文件。
下面的class是我用的
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);
}
异常 "Error occurred during logging, it's been turned off" 总是包含详细说明问题的更多信息。
最常见的原因是日志路径不存在,或者 运行 进程的帐户不可写。
WinSCP.SessionRemoteException: Error occurred during logging. It's been turned off. --->
Can't open log file 'X:\winscp.log'.
System Error. Code: 2.
The system cannot find the file specified
我正在开发一个使用 WinSCP .NET 程序集将 zip 文件(包含多个 pdf 文件)上传到远程 SFTP 服务器的解决方案。我不断收到
Error occurred during logging, it's been turned off.
谁能告诉我如何解决这个错误。
根据这个https://gallery.technet.microsoft.com/Secure-FTP-Powershell-65a2f5c5/view/Discussions,我创建了日志文件。
下面的class是我用的
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);
}
异常 "Error occurred during logging, it's been turned off" 总是包含详细说明问题的更多信息。
最常见的原因是日志路径不存在,或者 运行 进程的帐户不可写。
WinSCP.SessionRemoteException: Error occurred during logging. It's been turned off. --->
Can't open log file 'X:\winscp.log'.
System Error. Code: 2.
The system cannot find the file specified