• FluentFTP能连接却报未将对象引用设置到对象的实例。


    本来项目中用的好好的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 命令。

  • 相关阅读:
    理解js中的原型链,prototype与__proto__的关系
    Zepto源码(2016)——Zepto模块(核心模块)
    MySQL增删改查
    ACM典型试题--古代密码(二)
    ACM典型试题--简单的加密算法(一)
    MySQL图文安装配置
    (c语言)二叉树中序线索(数据结构十七)
    (C语言)二叉树层次遍历(数据结构十六)
    Java连接db2数据库(常用数据库连接五)
    java连接oracle数据库(常用数据库连接四)
  • 原文地址:https://www.cnblogs.com/bklsj/p/16191226.html
Copyright © 2020-2023  润新知