C# 获取错误:读取输入流时出错(从远程端复制文件)

C# 获取错误:读取输入流时出错(从远程端复制文件),c#,winscp,C#,Winscp,我得到了这个奇怪的错误;我已经调试了一段时间,我想问题是我正在从一个无意义的网站上传输一个鬼文件 请看,这是错误消息: 错误:错误:WinSCP.SessionRemoteException:从远程复制文件 一方失败了。读取输入流时出错。在里面 WinSCP.Session.PutFile(流)中的WinSCP.OperationResultBase.Check() 流、字符串、远程文件路径、传输选项) 我正在尝试从此站点获取最新的文件:/origin/path/interfaces,复制该文件

我得到了这个奇怪的错误;我已经调试了一段时间,我想问题是我正在从一个无意义的网站上传输一个鬼文件

请看,这是错误消息:

错误:错误:WinSCP.SessionRemoteException:从远程复制文件 一方失败了。读取输入流时出错。在里面 WinSCP.Session.PutFile(流)中的WinSCP.OperationResultBase.Check() 流、字符串、远程文件路径、传输选项)

我正在尝试从此站点获取最新的文件:/origin/path/interfaces,复制该文件并将其粘贴到其他服务器,特别是在以下位置:/destination/path/interfaces

一切似乎都正常,我正在获取最新的文件,但有些东西对我来说很奇怪:

似乎是从这里读取文件:/origin/path/interfaces/TXTFILES202104101700.txt(在第一个会话中),但这很奇怪,因为我无法通过在站点中指定文件名来访问文件,我只能这样做:/origin/path/interfaces/

我猜这个错误是因为它试图将一个ghost文件粘贴到新服务器中,它正在“读取”这个位置“/origin/path/interfaces/TXTFILES202104101700.txt”。我无法在路由中指定文件,仅此:/origin/path/interfaces/


这是我的代码:

// Sessions options
SessionOptions SftpSource = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx
};

SessionOptions SftpDestination = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx
};

using (Session sftpSessionServer1 = new Session())
using (Session SftpSessionServer2 = new Session())
{
    // Connecting to SFTP first server
    sftpSessionServer1.Open(SftpSource);

    // Get list of files in the SFTP directory
    string SftpRemoteDirectory = "/origin/path/interfaces";
    RemoteDirectoryInfo directoryInfo = sftpSessionServer1.ListDirectory(SftpRemoteDirectory);

    // Select the most recent file
    RemoteFileInfo ultimateFile =
        directoryInfo.Files
            .Where(file => !file.IsDirectory)
            .OrderByDescending(file => file.LastWriteTime)
            .First();

    // Connecting to SFTP second server
    SftpSessionServer2.Open(SftpDestination);

    string sSftpRemoteDirectory = "/destination/path/interfaces";
    string sftpRemotePath = RemotePath.Combine(sSftpRemoteDirectory, ultimateFile.Name);

    // Transfer from SFTP to SFTP
    using (Stream downloadStream = sftpSessionServer1.GetFile(ultimateFile.FullName))
    {
        SftpSessionServer2.PutFile(downloadStream, sftpRemotePath);
    }
}

两个会话的日志:

// Sessions options
SessionOptions SftpSource = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx
};

SessionOptions SftpDestination = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx,
    xxxxxxxx = xxxxxxxxxxxxx
};

using (Session sftpSessionServer1 = new Session())
using (Session SftpSessionServer2 = new Session())
{
    // Connecting to SFTP first server
    sftpSessionServer1.Open(SftpSource);

    // Get list of files in the SFTP directory
    string SftpRemoteDirectory = "/origin/path/interfaces";
    RemoteDirectoryInfo directoryInfo = sftpSessionServer1.ListDirectory(SftpRemoteDirectory);

    // Select the most recent file
    RemoteFileInfo ultimateFile =
        directoryInfo.Files
            .Where(file => !file.IsDirectory)
            .OrderByDescending(file => file.LastWriteTime)
            .First();

    // Connecting to SFTP second server
    SftpSessionServer2.Open(SftpDestination);

    string sSftpRemoteDirectory = "/destination/path/interfaces";
    string sftpRemotePath = RemotePath.Combine(sSftpRemoteDirectory, ultimateFile.Name);

    // Transfer from SFTP to SFTP
    using (Stream downloadStream = sftpSessionServer1.GetFile(ultimateFile.FullName))
    {
        SftpSessionServer2.PutFile(downloadStream, sftpRemotePath);
    }
}
第一届会议:

< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall   1609790 Apr 10 22:56:27 2021 TXTFILES202104101700.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall       435 Feb 12 17:10:58 2021 TXTFILES202102121710.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall   3722440 Apr 12 10:48:20 2018 TXTFILES20180412.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall    890092 Dec 20 10:58:54 2018 TXTFILES20181220.txt
> 2021-04-18 03:36:04.032 Script: get  -nopermissions -preservetime -transfer="binary" -onlyfile -- "/origin/path/interfaces/TXTFILES202104101700.txt" "-"
. 2021-04-18 03:36:04.033 Listing file "/origin/path/interfaces/TXTFILES202104101700.txt".
> 2021-04-18 03:36:04.033 Type: SSH_FXP_LSTAT, Size: 68, Number: 1543
< 2021-04-18 03:36:04.049 Type: SSH_FXP_STATUS, Size: 24, Number: 1284
. 2021-04-18 03:36:04.049 Discarding reserved response
< 2021-04-18 03:36:04.059 Type: SSH_FXP_ATTRS, Size: 37, Number: 1543
. 2021-04-18 03:36:04.059 TXTFILES202104101700.txt;-;1609790;2021-04-11T01:56:27.000Z;3;"" [501];"" [503];rw-r--r--;0
. 2021-04-18 03:36:04.059 Copying 1 files/directories to local directory "" - total size: 1.609.790
. 2021-04-18 03:36:04.059   PrTime: Yes; PrRO: No; Rght: rw-r--r--; PrR: No (No); FnCs: N; RIC: 0100; Resume: S (102400); CalcS: No; Mask: *.*
. 2021-04-18 03:36:04.059   TM: B; ClAr: No; RemEOF: No; RemBOM: No; CPS: 0; NewerOnly: No; EncryptNewFiles: Yes; ExcludeHiddenFiles: No; ExcludeEmptyDirectories: No; InclM: ; ResumeL: 0
. 2021-04-18 03:36:04.059   AscM: *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; *.js; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml
. 2021-04-18 03:36:04.060 File: '/origin/path/interfaces/TXTFILES202104101700.txt' [2021-04-11T01:56:27.000Z] [1609790]
. 2021-04-18 03:36:04.060 Streaming "/origin/path/interfaces/TXTFILES202104101700.txt" to local machine started.
. 2021-04-18 03:36:04.060 Binary transfer mode selected.
. 2021-04-18 03:36:04.060 Opening remote file.
> 2021-04-18 03:36:04.060 Type: SSH_FXP_OPEN, Size: 76, Number: 1795
< 2021-04-18 03:36:04.073 Type: SSH_FXP_HANDLE, Size: 13, Number: 1795
> 2021-04-18 03:36:04.073 Type: SSH_FXP_FSTAT, Size: 13, Number: 2056
< 2021-04-18 03:36:04.085 Type: SSH_FXP_ATTRS, Size: 37, Number: 2056
> 2021-04-18 03:36:04.085 Type: SSH_FXP_READ, Size: 25, Number: 2309
< 2021-04-18 03:36:04.930 Status code: 1
. 2021-04-18 03:36:04.930 132 skipped SSH_FXP_WRITE, SSH_FXP_READ, SSH_FXP_DATA and SSH_FXP_STATUS packets.
> 2021-04-18 03:36:04.930 Type: SSH_FXP_CLOSE, Size: 13, Number: 23300
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 15365
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 15621
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 15877
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 16133
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 16389
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 16645
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 16901
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17157
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17413
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17669
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17925
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18181
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18437
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18693
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18949
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19205
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19461
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19717
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19973
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20229
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20485
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20741
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20997
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21253
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21509
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21765
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 22021
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 22277
< 2021-04-18 03:36:05.000 Type: SSH_FXP_STATUS, Size: 28, Number: 22533
< 2021-04-18 03:36:05.012 Type: SSH_FXP_STATUS, Size: 28, Number: 22789
< 2021-04-18 03:36:05.100 Type: SSH_FXP_STATUS, Size: 28, Number: 23045
. 2021-04-18 03:36:05.100 Transfer done: '/origin/path/interfaces/TXTFILES202104101700.txt' => '-' [1609790]
. 2021-04-18 03:36:05.101 Copying finished: Transferred: 1.609.790, Elapsed: 0:00:01, CPS: 1.684.869/s
> 2021-04-18 03:36:06.027 Script: exit
. 2021-04-18 03:36:06.028 Script: Exit code: 0
. 2021-04-18 03:36:06.028 Closing connection.
. 2021-04-18 03:36:06.028 Sending special code: 1
. 2021-04-18 03:36:06.040 Session sent command exit status 0
. 2021-04-18 03:36:06.040 Main session channel closed
. 2021-04-18 03:36:06.040 All channels closed
<2021-04-18 03:35:59.731脚本:-rw-r--r--1我的用户oinstall 1609790 Apr 10 22:56:27 2021 TXTFILES202104101700.txt
<2021-04-18 03:35:59.731脚本:-rw-r--r--1我的用户oinstall 435 Feb 12 17:10:58 2021 TXTFILES202102121710.txt
<2021-04-18 03:35:59.731脚本:-rw-r--r--1我的用户oinstall 3722440 Apr 12 10:48:20 2018 TXTFILES20180412.txt
<2021-04-18 03:35:59.731脚本:-rw-r--r--1我的用户oinstall 890092 Dec 20 10:58:54 2018 TXTFILES20181220.txt
>2021-04-18 03:36:04.032脚本:get-nopermissions-preservetime-transfer=“binary”-onlyfile--“/origin/path/interfaces/TXTFILES202104101700.txt”
. 2021-04-18 03:36:04.033列出文件“/origin/path/interfaces/TXTFILES202104101700.txt”。
>2021-04-18 03:36:04.033类型:SSH_fxplstat,尺寸:68,编号:1543
<2021-04-18 03:36:04.049类型:SSH\U FXP\U状态,大小:24,编号:1284
. 2021-04-18 03:36:04.049丢弃保留响应
<2021-04-18 03:36:04.059类型:SSH\u FXP\u属性,大小:37,编号:1543
. 2021-04-18 03:36:04.059 TXTFILES202104101700.txt;-;1609790;2021-04-11T01:56:27.000Z;3."" [501];"" [503];rw-r--r--;0
. 2021-04-18 03:36:04.059正在将1个文件/目录复制到本地目录“”-总大小:1.609.790
. 2021-04-18 03:36:04.059时间:是;PrRO:没有;Rght:rw-r--r--;PrR:否(否);FnCs:N;RIC:0100;简历:S(102400);计算:没有;面具:**
. 2021-04-1803:36:04.059 TM:B;克拉尔:没有;主席:没有;雷姆博姆:没有;CPS:0;纽厄尔尼:没有;加密新文件:是;排除隐藏文件:否;不包括空目录:否;包括:;简历:0
. 2021-04-18 03:36:04.059 AscM:*.*html;*。htm;*。txt;*。php;*。php3;*。cgi;*。c、 *。cpp;*。h、 *。pas;*。bas;*。tex;*。pl;*。js。htaccess;*。xtml;*。css;*。cfg;*。ini;*。sh;*。xml
. 2021-04-18 03:36:04.060文件:'/origin/path/interfaces/TXTFILES202104101700.txt'[2021-04-11T01:56:27.000Z][1609790]
. 2021-04-18 03:36:04.060开始向本地计算机传输“/origin/path/interfaces/TXTFILES202104101700.txt”。
. 2021-04-18 03:36:04.060已选择二进制传输模式。
. 2021-04-18 03:36:04.060正在打开远程文件。
>2021-04-18 03:36:04.060类型:SSH_FXP_OPEN,尺寸:76,编号:1795
<2021-04-18 03:36:04.073类型:SSH\U FXP\U手柄,尺寸:13,编号:1795
>2021-04-18 03:36:04.073类型:SSH_FXP_FSTAT,大小:13,编号:2056
<2021-04-18 03:36:04.085类型:SSH\u FXP\u属性,大小:37,编号:2056
>2021-04-18 03:36:04.085类型:SSH\u FXP\u读取,大小:25,编号:2309
<2021-04-18 03:36:04.930状态代码:1
. 2021-04-18 03:36:04.930 132跳过了SSH_FXP_写入、SSH_FXP_读取、SSH_FXP_数据和SSH_FXP_状态数据包。
>2021-04-18 03:36:04.930类型:SSH_FXP_CLOSE,大小:13,号码:23300
<2021-04-18 03:36:04.930类型:SSH_FXP_状态,大小:28,编号:15365
<2021-04-18 03:36:04.930类型:SSH_FXP_状态,大小:28,编号:15621
<2021-04-18 03:36:04.930类型:SSH_FXP_状态,大小:28,编号:15877
<2021-04-18 03:36:04.930类型:SSH_FXP_状态,大小:28,编号:16133
<2021-04-18 03:36:04.930类型:SSH_FXP_状态,大小:28,编号:16389
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:16645
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:16901
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:17157
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:17413
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:17669
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:17925
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:18181
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:18437
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:18693
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:18949
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:19205
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:19461
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:19717
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:19973
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:20229
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:20485
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:20741
<2021-04-18 03:36:04.931类型:SSH_FXP_状态,大小:28,编号:20997
<2021-04-18 03:36:04.932类型:SSH_FXP_状态,大小:28,编号:21253
<2021-04-18 03:36:04.932类型:SSH_FXP_状态,大小:28,编号:21509
< 2
// Transfer from SFTP to SFTP
using (Stream downloadStream = sftpSessionServer1.GetFile(ultimateFile.FullName))
using (Stream memoryStream = new MemoryStream())
{
    downloadStream.CopyTo(memoryStream);
    memoryStream.Position = 0;
    SftpSessionServer2.PutFile(memoryStream, sftpRemotePath);
}