WinSCP SFTP - .tmp Процесс не может получить доступ к файлу

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

Некоторые примечания: Я использую Windows 7. Использование SFTP-сервера CrushFTP, возможность подключения с помощью FileZilla и клиента WinSCP, но через код это кошмар.

Ошибка / исключение:

Первое случайное исключение типа System.IO.IOException произошло в mscorlib.dll

Дополнительная информация: процесс не может получить доступ к файлу «C: \ Users \ xxxxxxx \ AppData \ Local \ Temp \ wscp0D64.036B20B7.tmp», потому что он используется другим процессом.

Мой код для подключения ниже

SessionOptions sessionOptions = new SessionOptions 
{ 
    Protocol = Protocol.Sftp, 
    HostName = "127.0.0.1", //hostname e.g. IP: 192.54.23.32, or mysftpsite.com 
    UserName = "xxxxxx", 
    Password = "yyyyyy", 
    PortNumber = zzzzz, //some number 
    SshHostKeyFingerprint = "ssh-rsa 1024 ::::04:85:3b:7a::::::::" 
}; 

using (Session session = new Session()) 
{ 
    session.Open(sessionOptions); //Attempts to connect to your sFtp site 
    //Get Ftp File 
    TransferOptions transferOptions = new TransferOptions(); 
    transferOptions.TransferMode = TransferMode.Binary; //The Transfer Mode - 
    // Automatic, Binary, or Ascii 
    transferOptions.FilePermissions = null; //Permissions applied to remote files; 
    //null for default permissions. Can set user, 
    //Group, or other Read/Write/Execute permissions. 
    transferOptions.PreserveTimestamp = false; //Set last write time of 
    //destination file to that of source file - basically change the timestamp 
    //to match destination and source files. 
    transferOptions.ResumeSupport.State = TransferResumeSupportState.Off; 

    TransferOperationResult transferResult; 
    //the parameter list is: local Path, Remote Path, Delete source file?, transfer Options 
    transferResult = session.PutFiles(@"C:\Adnan\a.txt", "/", false, transferOptions); 
    //Throw on any error 
    transferResult.Check(); 
    //Log information and break out if necessary 
}

person Muhammad Adnan    schedule 19.01.2015    source источник
comment
Можете ли вы включить стек вызовов или, что еще лучше, журнал отладки (Session.DebugLogPath)?   -  person Martin Prikryl    schedule 19.01.2015
comment
журнал отладки .. последние несколько строк. 2015-01-20 09: 52: 26.317 ---------------------------------------- ----------------------------------. 2015-01-20 09: 52: 26.317 Поиск хоста 127.0.0.11. 2015-01-20 09: 52: 26.317 Подключение к 127.0.0.11 порту 54545. 2015-01-20 09: 52: 27.318 Не удалось подключиться к 127.0.0.11: сетевая ошибка: в соединении отказано. 2015-01-20 09: 52: 27.318 Использование нестандартного протокола или порта, туннеля или прокси-сервера не приведет к блокированию порта FTP.   -  person Muhammad Adnan    schedule 20.01.2015
comment
Это не журнал отладки. Это журнал сеанса (Session.SessionLogPath).   -  person Martin Prikryl    schedule 20.01.2015
comment
Привет, Мухаммад. Вы когда-нибудь выясняли, в чем проблема? У меня такая же проблема ...   -  person Tomás    schedule 16.02.2015


Ответы (1)


Я тоже столкнулся с этим исключением. Для меня это было сгенерировано при обращении к session.Open(...).

Однако это внутреннее исключение, которое генерируется и перехватывается сборкой WinSCP. Я заметил это только потому, что я настроил Visual Studio так, чтобы он останавливался при каждом сгенерированном исключении. Если я отключу этот параметр (или продолжу мимо этого и некоторых дополнительных внутренних исключений IOExceptions), соединение SFTP откроется правильно.

person ngm    schedule 28.04.2015