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