Azure App Service WebJob用WinSCP同步目录报错如何禁用断点续传
要禁用WinSCP的断点续传(可恢复文件传输)功能,你需要显式配置TransferOptions参数,再传入目录同步方法即可,具体操作如下:
- 初始化传输配置对象,关闭断点续传开关
var transferOptions = new TransferOptions(); // 关闭可恢复传输功能 transferOptions.ResumeSupport.State = TransferResumeSupportState.Off;
- 将配置对象传入
SynchronizeDirectories方法的最后一个参数
你原来的调用缺少自定义传输配置,修改后的代码如下:
var syncResult = session.SynchronizeDirectories( SynchronizationMode.Remote, localFolder, remoteFolder, false, // 不移除源目录不存在的目标文件 false, // 不开启镜像同步 SynchronizationCriteria.None, transferOptions // 传入自定义的传输配置 );
原理说明
WinSCP默认开启可恢复传输,上传时会先写入带临时后缀的文件,传输完成后删除原有目标文件、再将临时文件重命名为正式文件名。你的FTP账号没有删除目标文件的权限,所以触发了报错。关闭可恢复传输后,WinSCP会直接覆盖目标文件,不需要执行删除原有文件的操作,即可解决该问题。
内容的提问来源于stack exchange,提问作者mamhh
相关产品推荐
相关产品推荐

