You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinSCP在Visual Studio中无法实现Windows到Linux服务器文件传输

解决WinSCP FTP传输无报错但文件未上传/下载的问题

我看了你的代码和参数设置,这里有几个核心问题导致文件没传输成功,咱们一个个来解决:

1. 远程路径格式完全错误!

你用的是FTP协议连接Linux服务器,但传递的远程路径是Windows共享格式\\remote host server\folder1\folder_backups\test_files\——这完全不符合FTP/Linux的路径规则!Linux/FTP的路径是正斜杠分隔的绝对路径,比如你应该传/folder1/folder_backups/test_files/(要提前确认这个路径在Linux服务器上确实存在,且FTP账号拥有读写权限)。

同样,你代码里session.GetFiles那行的远程路径也用了Windows格式,必须改成FTP路径,比如/folder1/folder_backups/test_files/test1.txt。

2. Web应用里的本地文件路径逻辑有误

在ASP.NET Web应用中,Fileupload1.PostedFile.FileName只返回客户端的文件名(比如test.jpg),不是服务器上的完整文件路径——浏览器出于安全考虑,不会把客户端的本地完整路径传给服务器。你得先把上传的文件保存到Web服务器的某个目录,拿到服务器本地的完整路径,再传给WinSCP的PutFiles方法。

举个修正的例子:

// 先创建临时上传目录(确保Web应用有读写权限)
string tempDir = Server.MapPath("~/TempUploads");
if (!Directory.Exists(tempDir))
{
    Directory.CreateDirectory(tempDir);
}
// 生成服务器本地的完整文件路径
string localFilePath = Path.Combine(tempDir, Path.GetFileName(Fileupload1.PostedFile.FileName));
// 把上传的文件保存到服务器本地
Fileupload1.PostedFile.SaveAs(localFilePath);

// 再调用你的Upload方法,用这个正确的localFilePath
project1.Upload("remote host server", "username", "password", "/folder1/folder_backups/test_files/", localFilePath);

3. 调试输出无效等于白搭

你代码里用了Console.WriteLine,但Web应用运行在IIS环境下,控制台输出根本看不到!换成日志或者页面输出才能知道到底执行到哪一步了。比如用System.Diagnostics.Trace.WriteLine写入日志,或者在页面上用Response.Write输出调试信息。

另外,强烈建议开启WinSCP的会话日志,能帮你排查所有连接和传输细节:

using (session = new Session())
{
    // 开启日志,指定服务器上的日志文件路径
    session.SessionLogPath = Server.MapPath("~/WinSCP_Session.log");
    session.Open(sessionOptions);
    // ... 后续传输代码
}

日志里会详细记录连接过程、传输命令、服务器响应,哪怕是权限不足、路径不存在这类隐性问题都能查出来。

4. 额外的关键检查点

  • 确认FTP服务器端口:默认是21,如果你的服务器改了端口,要在SessionOptions里加上PortNumber = 自定义端口
  • 检查FTP模式:如果是被动模式(大部分公共FTP需要),WinSCP默认是启用的,但如果服务器配置特殊,可能需要手动设置sessionOptions.FtpMode = FtpMode.Passive
  • 验证账号权限:确保你的FTP账号对目标上传路径有写入权限,对下载路径有读取权限

按照上面的步骤修改后,应该就能成功传输文件了!

内容的提问来源于stack exchange,提问作者venkat14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:00:51