Файлы не переносятся из Windows на удаленный сервер Linux - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь использовать WinSCP в visual studio. Я скачал и установил WinSCP с помощью пакета Managed NuGet. Я использовал приведенный ниже код в веб-приложении для передачи одного из файлов на удаленный сервер Linux. Код выполняется без ошибок, но файл не передается. Я вошел в систему, используя PuTTY, чтобы проверить, действительно ли файл был передан, но не смог найти файл. Ниже приведен код, используемый

public int Upload(String HostName, String UserName, String Password, String remotePath, String localFilePath)
{
    int result = 0;
    Session session = null;
    try
    {
        // Setup session options               
        SessionOptions sessionOptions = new SessionOptions
        {
            Protocol = Protocol.Ftp,
            HostName = HostName,
            UserName = UserName,
            Password = Password,
            Timeout = TimeSpan.FromDays(1),

        };

        using (session = new Session())
        {
            // Connect
            session.Open(sessionOptions);

            // upload files
            TransferOptions transferOptions = new TransferOptions();
            transferOptions.TransferMode = TransferMode.Ascii;

            TransferOperationResult transferResult = null;
            transferResult = session.PutFiles(localFilePath, remotePath, false, transferOptions);

            //  Throw on any error
            transferResult.Check();
            //  Print results
            foreach (TransferEventArgs transfer in transferResult.Transfers)
            {
                Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
            }
            session.GetFiles(@"\\remoteserver\folder1\folder_backups\test_files\test1.txt", @"d:\folder3\").Check();
        }

        result = 0;
    }
    catch (Exception e)
    {
        Console.WriteLine("Error: {0}", e);
        result = 1;
    }
    finally
    {
        if (session != null)
        {
            session.Dispose();
        }
    }
    return result;
}

Аргументы передаются как показано ниже:

project1.Upload("remote host server", "username", "password", @"\\remote host server\folder1\folder_backups\test_files\", Fileupload1.PostedFile.FileName);

Код выполняется без ошибок, но файл не загружен и не загружен. Как это исправить? Спасибо

Ответы [ 2 ]

0 голосов
/ 10 января 2019

После входа в систему в GUI - он указывает на / home / UserId. Но папка, в которую я хочу переместить файлы, существует в / folder1

Если вы хотите использовать удаленный путь /folder1/, используйте его для аргумента remotePath вашего Upload метода вместо явно неверного значения @"\\remote host server\folder1\folder_backups\test_files\".

project1.Upload("host", "user", "password", "/folder1/", Fileupload1.PostedFile.FileName);
0 голосов
/ 09 января 2019

Не совсем уверен, но похоже, что вы установили протокол FTP, который может не поддерживаться сервером. Если вы можете войти через putty, значит, SSH-соединение возможно. Попробуйте установить протокол на SFTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...