.net 5 FluentFTP连接FTP失败问题:This operation is only allowed using a successfully authenticated context

18 篇文章 3 订阅

背景:测试环境下用FluentFTP连接FTP没问题,到客户那里连接不上了

问题分析:

1.看错误信息,是认证之类的,检查了FTP账号密码是没问题的

2.检查客户那边的FTP Server,是Sery-U搭建的,用客户端连接是可以的

3.那就是程序问题,怀疑是FluentFTP问题,但查看FluentFTP,是支持连接Serv-U的;因为不想更改程序内过多东西,于是开始分析FluentFTP使用问题

4.查看了初始化FTPClient方法,尝试更换后,无效;发现连接处是使用的AutoConnect,感觉好像坏在这个Auto上了

看一下AutoConnect作用:

 这补了个小知识,FTPS是在FTP基础上需要TLS和SSL认证的,但是和基于SSH的FTP是不一样的(即SFTP)。那AutoConnect应该就是自动识别是FTP还是FTPS,然后进行连接。这里它应该认为是FTPS,然后去连接,同时我们的连接信息中缺少对于FTPS连接认证的凭据,导致不成功;

解决:将AutoConnect改为Connect就好了;

延申:

反编译查看了一下AutoConnect的源码:

他是获取多个FtpProfile,并取第一个进行连接;

查看AutoDetect方法中,明显有很多关于SSL的操作,但是没确定是哪块操作导致这个错误

总结:对于AutoConnect和Connect还是要谨慎使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值