BizTalk Server 2020 SFTP接收位置属性获取失败警告规避咨询
BizTalk Server 2020 SFTP适配器属性操作警告抑制方案
问题分析
从错误日志来看,BizTalk的SFTP适配器在下载完成后尝试删除文件时,WinSCP会调用GetFileInfo接口获取文件属性,但目标SFTP服务器不支持该操作,进而抛出警告。虽然文件已成功接收,但重复的警告会占用事件日志资源,影响正常日志排查。
可行的规避与抑制方案
1. 调整接收位置的文件删除策略
如果业务允许保留SFTP服务器上的已处理文件,可在BizTalk接收位置配置中,将删除已处理文件选项设置为False。适配器不再执行删除操作,自然不会触发后续的文件属性检查,从根源消除警告。
2. 通过BizTalk适配器传递WinSCP参数
BizTalk的SFTP适配器支持通过Advanced属性传递WinSCP会话参数,尝试添加以下参数跳过属性检查:
- 在接收位置的Advanced字段中添加:
DisableCheckFileExists=1 - 或尝试
PreserveTimestamp=0(若属性检查是为了保留文件时间戳)
这些参数会传递给WinSCP会话,可能绕过对文件属性的强制获取逻辑。
3. Windows事件日志层面过滤
若上述方法无效,可通过Windows事件查看器创建自定义视图过滤该警告:
- 打开事件查看器,右键自定义视图 → 创建自定义视图
- 在筛选器中设置事件来源为
BizTalk Server,并匹配该警告对应的事件ID(可从现有日志中提取) - 创建视图后,可设置自动归档或隐藏此类事件,避免干扰正常日志查看。
4. 自定义适配器包装(进阶方案)
如果以上方法均不适用,可编写轻量级包装类拦截WinSCP的GetFileInfo调用,当遇到错误代码2(文件不存在/属性不可获取)时,直接返回默认属性而非抛出异常,再将该包装类集成到BizTalk的SFTP适配器流程中。
注意事项
- 若选择保留服务器文件,需定期清理SFTP服务器上的已处理文件,避免存储资源耗尽。
- 修改WinSCP参数前,务必在测试环境验证,确保不会影响文件下载的正确性。
内容的提问来源于stack exchange,提问作者NDDev
相关产品推荐
相关产品推荐

