以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于FTP升级的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188814)

--  作者:2900819580
--  发布时间:2023/10/20 15:38:00
--  [求助]关于FTP升级的问题
  老师,使用FTP设置升级,设置了判断,如果连接不成功,会等好久,才弹出Message的错误提示,有没有什么办法,可以快速提醒FTP连接不成功吗?。

        Dim fstr As String = "ftp://UpdateUse:23456@192.168.0.106"
If Fstr.StartsWith("ftp://") Then
        fstr = fstr.Replace("ftp://", "")
        FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>" & fstr , True)
        Dim Fs1() As String = fstr.Split("@")
        Dim Fs2() As String = Fs1(0).Split(":") 
        Dim ftp1 As New FtpClient
        ftp1.Host = fs1(1)
        ftp1.Account = fs2(0)
        ftp1.Password = fs2(1)
        If ftp1.Connected = False Then\'如果FTP没有连接
            If ftp1.Connect = False Then \'连接FTP
                Messagebox.show("连接FTP失败导致升级失败,请检查FTP设置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                err = 1
            End If
        End If
    End If 
    \'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
    If err = 0 Then 
        UpdatePath = s
If Syscmd.Project.Update(False, False) = False Then 
end if

--  作者:有点蓝
--  发布时间:2023/10/20 15:46:00
--  
http://www.foxtable.com/webhelp/topics/1410.htm

ftp1.TimeOut = 1000

--  作者:2900819580
--  发布时间:2023/10/20 15:58:00
--  
Dim ftp1 As New FtpClient
ftp1.TimeOut = 1000
        ftp1.Host = fs1(1)
        ftp1.Account = fs2(0)
        ftp1.Password = fs2(1)

老师,也是一样不行,要等好久才弹出提示框。

--  作者:有点蓝
--  发布时间:2023/10/20 16:11:00
--  
我测试很快,确实只有1秒。应该是其它代码的问题

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


--  作者:2900819580
--  发布时间:2023/10/20 16:54:00
--  

Errlog.txt内容如下。
2023-10-20 16:56:53>>ftp开始\\
2023-10-20 16:56:53>>UpdateUse:Aa=123456@192.168.0.126
2023-10-20 16:56:53>>准备判断连接\\
2023-10-20 16:56:53>>没有连接\\
2023-10-20 16:57:14>>连接失败\\

命令窗口,没有其它代码。
FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>ftp开始\\" , True) 
Dim fstr As String = "ftp://Use:123456@192.168.0.126"
fstr = fstr.Replace("ftp://", "")
FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>" & fstr , True)
Dim Fs1() As String = fstr.Split("@")
Dim Fs2() As String = Fs1(0).Split(":") 
Dim ftp1 As New FtpClient
ftp1.Timeout = 1000
ftp1.Host = fs1(1)
ftp1.Account = fs2(0)
ftp1.Password = fs2(1)
FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>准备判断连接\\" , True) 
If ftp1.Connected = False Then\'如果FTP没有连接
    FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>没有连接\\" , True) 
    If ftp1.Connect = False Then \'连接FTP
        FileSys.WriteAllText(ProjectPath & "Errlog.txt", vbcrlf & Date.Now & ">>连接失败\\" , True) 
        Messagebox.show("连接FTP失败导致升级失败,请检查FTP设置,可在服务端更改客户端升级路径解决此问题!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End If
End If


--  作者:有点蓝
--  发布时间:2023/10/20 17:13:00
--  
网络不通导致的。换种方式,先ping一下ip,这里可以设置超时,ping的通再连:http://www.foxtable.com/webhelp/topics/1401.htm