FluentFTP能连接却报未将对象引用设置到对象的实例。
2024-10-21 07:52:13
本来项目中用的好好的FTP下载传输,不知道从什么时候开始读取不到了,也上传不了。实际读取的是本地缓存的。因为同事上传不了文件和图片才发现。上源码!
#region 下载文件
static byte[] DownloadFile(string downPath)
{
byte[] outBuffs;
using (FtpClient conn = new FtpClient("ftp://" + ServerPath + "/", remoteUser, remotePass))//serverPath是服务器ip 无端口。FTP用户,FTP密码
{
conn.Connect();//开启连接
//conn.DataConnectionType = FtpDataConnectionType.PORT;//主动模式
//conn.DataConnectionType = FtpDataConnectionType.PASV;//被动模式
bool flag = conn.Download(out outBuffs, downPath); //downPath数据“/Upload/Img/234678.jpg” //这里报错,未将对象引用到对象实例
}
return outBuffs;
}
#endregion
解决:
1、下载FluentFTP源码,几经调试。发现是FTP被动连接报425错误。
2、FTP425错误出现的可能原因有多种,我个菜鸡就不清楚了(自行百度)
3、我这里是因为服务器可能没设置端口范围,可能服务器自动开的端口冲突了(重启就行了,不过也是临时的,下次还是会出现。还是要设置下端口范围以避免此类情况)
4、FluentFTP默认为不支持IPV6的被动模式。设置模式DataConnectionType
FluentFTP,指定连接模式:DataConnectionType
DataConnectionType=FtpDataConnectionType.PORT;//主动模式
DataConnectionType=FtpDataConnectionType.PASV;//被动模式
DataConnectionType=FtpDataConnectionType.AutoPassive;//默认被动模式。这种类型的数据连接尝试使用 EPSV 命令,如果服务器不支持 EPSV,它会在放弃之前回退到 PASV 命令,除非您通过 IPv6 连接,在这种情况下不支持 PASV 命令。
最新文章
- CATransition(os开发之画面切换) 的简单用法
- nginx下搭建CodeIgniter问题集锦
- Swift与OC混编
- 采用OLEDB数据库方式向指定的Excel添加数据,怪像!
- linux 时间同步
- iOS NSUserDefaults 存放位置
- 如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)
- 15款最佳的MySQL管理工具和应用程序
- jQuery each用法及each解析json
- ElasticSearch学习问题记录——nested查询不到数据
- 对C#对象的Shallow、Deep Cloning认识【转】
- Application.EnableVisualStyles();
- 关于struts2中action请求会执行两次的问题
- MySQL TEXT数据类型的最大长度
- PAT (Advanced Level) 1058. A+B in Hogwarts (20)
- alert 执行顺序问题
- CSS——LESS【转】
- python中那些双下划线开头得函数和变量
- 基于 Apache 在本地配置多个虚拟主机
- (转帖整理)Linux下的Autoconf和AutoMake(理论篇) 1