【发布时间】:2019-01-09 14:53:31
【问题描述】:
我正在尝试在 Visual Studio 中使用 WinSCP。我使用托管 NuGet 包下载并安装了 WinSCP。我在 Web 应用程序中使用以下代码将其中一个文件传输到远程 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);
代码执行没有任何错误,但没有上传或下载文件。如何解决这个问题? 谢谢
【问题讨论】:
-
请发布 WinSCP 会话日志文件 (
Session.SessionLogPath)。 -
\\remote host server\folder1\folder_backups\test_files\看起来不像是一个有效的 FTP 路径。当您登录到服务器时,您在 WinSCP GUI 中看到什么路径? -
session.sessionLogpath 为空
-
您必须将
Session.SessionLogPath设置为您要将会话日志文件存储到的路径! ---- 你没有回答我的另一个问题。 - 在您“导航到文件夹”(正如您在对另一个问题的评论中所写)之后,您在 WinSCP GUI 文件面板中看到了什么路径? -
在 GUI 中登录后 - 它指向 /home/UserId 。但是我要移动文件的文件夹存在于 /folder1
标签: c# .net ftp winscp winscp-net