Foxtable(狐表)用户栏目专家坐堂 → 直接在命令窗口中运行ftp下载会出错


  共有2720人关注过本帖树形打印复制链接

主题:直接在命令窗口中运行ftp下载会出错

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
直接在命令窗口中运行ftp下载会出错  发帖心情 Post By:2016/4/6 0:22:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:ftp下载出错.png
图片点击可在新窗口打开查看

如上图,为什么会出错呢,ftp的服务器及用户名都是正确的,且ftp文件夹也设置成所有人都可以访问的

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/6 19:53:00 [显示全部帖子]

在网页中直接输入ftp地址有时可以,有时又不可以下载,现在就是想直接用ft的跨本版自动升级,总是不成功。

上面这个太复杂,弄不太明白,不知道如何使用。

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/6 19:56:00 [显示全部帖子]

Dim url As String = "http://www.foxtable.com/download/80222/update.zip"

url这里可以用"ftp://XXX.XXX.XXXX" 这样的地址吗?

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/7 21:18:00 [显示全部帖子]

这个封装的方法要怎么用?不懂

我用系统默认的上传下载窗口会出现下面的错误
FTP错误,System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。    在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)    在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 size, SocketFlags socketFlags)    在 Foxtable.FTPClient.O000 oO ()

远程服务上的防火墙是关闭掉的。端口等都打开了



 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/7 23:13:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:360截图20160407224437584.jpg
图片点击可在新窗口打开查看

IE浏览器可以打开,但是点击那个升级文件时不会弹出下载对话框即没反应,

在远程文件管理器有时会显示列表失败, 451 another command is currently pending ,Please try again later,
然后一直提示上面这个:

重新关掉上传下载再次打开有时又提示如下:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图2.png
图片点击可在新窗口打开查看

重新关掉上传下载再次打开有时又正确如下:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图3.png
图片点击可在新窗口打开查看

手动下载自动升级的代码如下:
'连接FTP服务器
Dim ftp As New FtpClient
ftp.Host = ftp_Host  'ftp服务器地址
ftp.Account = ftp_User  'ftp登录帐号
ftp.Password = ftp_Pwd   'ftp登录密码
ftp.Port = ftp_Port  'ftp端口号
ftp.RootDir = "/Update" '如果升级所需文件刚好放置在FTP的根目录下,可以不用设置此属性;否则需要设置目录路径.
If TryConnectHost(ftp_Host) Then  '如果ftp的网络是通的检测是否有升级包
    If ftp.Connect Then '如果FTP没有连接,用备用域名连接
        '----新增临时升级目录----
        If FileSys.DirectoryExists("D:\UpdateTemporary") = False Then
            FileSys.CreateDirectory("D:\UpdateTemporary")
        End If
        '---先下载ftp服务器上的日期文件----------
        If ftp.Download("\Update\Update.Txt","D:\UpdateTemporary\Update.Txt") = True Then '如果下载升级日期文件成功
            Dim ud() As String = FileSys.ReadAllText("D:\UpdateTemporary\Update.Txt").Split("|")
            Dim Sdate1 As Date = Cdate(ud(0)) '服务器update.txt发布日期
            Dim Sdate2 As Date = Cdate(ud(1)) '服务器Version.txt发布日期
            Dim Cdate1 As Date = PublishDate '客户端发布日期
            Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\Bin\Version.txt") '客户端Version.txt发布日期
            
            If Sdate2 > Cdate2 Then '如果服务器程序发布日期大于客户端发布日期(大升级)
                'If MessageBox.Show("发现新的版本更新,发布日期:" & Sdate2 & ",是否升级?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                If ftp.Download("\Update\Update2.Zip","D:\UpdateTemporary\Update2.Zip") = True Then '如果下载程序文件成功
                    UpdatePath = "D:\UpdateTemporary"
                    RemoteUpdate = False
                    If Syscmd.Project.Update(False,True) = True Then '发现新版本时不提示用户,因为前面已提示过
                        '----删除临时升级目录----
                        If FileSys.DirectoryExists("D:\UpdateTemporary") = True Then
                            FileSys.DeleteDirectory("D:\UpdateTemporary",2,2)
                        End If
                        Return '升级完成后必须先中止后面的代码,否则会出错
                    End If
                End If
                ' End If
            ElseIf Sdate1 > Cdate1 Then '如果服务器版本发布日期大于客户端发布日期(小升级)
                'If MessageBox.Show("发现新的更新,发布日期:" & Sdate1 & ",是否升级?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                If ftp.Download("\Update\Update1.Zip","D:\UpdateTemporary\Update1.Zip") = True Then '如果下载程序文件成功
                    UpdatePath = "D:\UpdateTemporary"
                    RemoteUpdate = False
                    If Syscmd.Project.Update(False,True) = True Then '发现新版本时不提示用户,因为前面已提示过
                        '----删除临时升级目录----
                        If FileSys.DirectoryExists("D:\UpdateTemporary") = True Then
                            FileSys.DeleteDirectory("D:\UpdateTemporary",2,2)
                        End If
                        Return '升级完成后必须先中止后面的代码,否则会出错
                    End If
                End If
                'End If
            Else
                MessageBox.Show("您正在使用的已经是最新版本!")
            End If
        End If
    End If
End If

执行这段代码后在电脑的D盘下会出现一个
Update.Txt.fxdlif  这个没有下载成功的文件,当然升级就不成功了







 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/7 23:47:00 [显示全部帖子]

服务器和客户端的防火墙都是关闭的,我自动升级的代码没错吧,
有时总是怀疑哪里多了一个\或者\写成/造成出错,
但同样的代码在另外一家公司又没问题,远程局域网内的电脑都可以正确的自动升级,所以真不知道怎么办了,远程调试用户的服务器一两天了也没有解决,在服务器上直接安装ftp,用各种ftp软件都试了,现在是安装的ser-U,也是同样的问题

服务器上的应该打开的端口,从21到各种主动或被动模式的端口都开启测试了,路由器上的端口映射都设置了就是没用啊
客户用的是花生壳或者金万维的免费的域名解析,应该和这个没关系吧,因为除了ftp自动升级不可以外,远程外网和内网平时使用系统都能没有问题。

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/8 13:20:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:ftp001.png
图片点击可在新窗口打开查看

是不是我上面地址那里用ftp写的不正确?

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/8 14:42:00 [显示全部帖子]

用FlashFxp软件都能正常登录下载,就是ft的远程文件管理器中下载就不行


图片点击可在新窗口打开查看此主题相关图片如下:ftp-2.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:ftp-3.png
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/8 18:09:00 [显示全部帖子]

版本是2016-3-27的版本,请教一下老师说的那种封装方法怎么用啊,如16楼所示在命令窗口运行会出错

 回到顶部