2015-06-28 3 views
1

Я разрабатываю решение, которое использует сборку WinSCP .NET для загрузки zip-файла (содержит несколько файлов PDF) на удаленный SFTP-сервер. Я продолжаю получатьСборник WinSCP .NET - произошла ошибка во время ведения журнала. Он отключен

Ошибка при регистрации, она отключена.

Не могли бы рассказать мне, как исправить эту ошибку.

В соответствии с этим 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); 
} 
+0

Вы изменили класс 'PSftp'? –

ответ

0

Исключение «Ошибка при регистрации, она была отключена». всегда содержит дополнительную информацию, которая детализирует проблему.

Наиболее распространенной причиной является то, что путь журнала не существует или не доступен для записи учетной записью, которая запускает процесс.

WinSCP.SessionRemoteException: Ошибка при регистрации. Он выключен. --->
Не удается открыть файл журнала «X: \ winscp.log».
Ошибка системы. Код: 2.
Не можете найти файл

0

Хорошо, поэтому на самом деле это не совсем правильное решение этой проблемы, я удаляю логику, записываемую в файл журнала ошибок. Получить сообщение об ошибке. Тем не менее, нужно выяснить, как правильно его исправить.