以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  项目定义了在线升级地址 怎么实现先判断在线升级地址是否可以正常使用 在进行系统升级,升级完后自动重新启动系统!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177154)

--  作者:cnsjroom
--  发布时间:2022/5/11 9:56:00
--  项目定义了在线升级地址 怎么实现先判断在线升级地址是否可以正常使用 在进行系统升级,升级完后自动重新启动系统!

项目定义了在线升级地址   怎么实现先判断在线升级地址是否可以正常使用  在进行系统升级,升级完后自动重新启动系统!

当服务器关闭的时候会提示如下:

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:在线升级失败!
详细错误信息:
无法连接到远程服务器
由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 192.168.110.235:8088

 

有没有办法  用代码判断呢?

当在线升级地址无法链接的时候就不升级  反之就升级

 

当前在项目启动完后的代码如下:没有达到预期

Dim ipFile As String = ProjectPath & "\\Attachments\\ip.txt"
If Filesys.FileExists(ipFile) Then
    Dim ip As String = FileSys.ReadAllText(ipFile)
    If TryConnectHost(ip) = True Then
        If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
            MainTable=Tables("表a")
            TableCaptionVisible = False
            Forms("会议系统").open
        Else  \'如果升级成功
            Syscmd.Project.Open(ProjectFile)
        End If
    End If
End If

 

 


--  作者:有点蓝
--  发布时间:2022/5/11 10:35:00
--  
Dim ipFile As String = ProjectPath & "\\Attachments\\ip.txt"
dim up as boolean
If Filesys.FileExists(ipFile) Then
    Dim ip As String = FileSys.ReadAllText(ipFile)
    If TryConnectHost(ip) = True Then
up = Syscmd.Project.Update(False,False)
    End If
End If
        If up = False Then \'如果没有升级
            MainTable=Tables("表a")
            TableCaptionVisible = False
            Forms("会议系统").open
        End If

没有办法自动重新启动,也不建议自己写代码重启

--  作者:cnsjroom
--  发布时间:2022/5/11 11:16:00
--  回复:(有点蓝)Dim ipFile As String = ProjectPath...

提示:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:在线升级失败!
详细错误信息:
远程服务器返回错误: (400) 错误的请求。

 

 

ip.text文件内容:192.168.3.239

cmd运行结果:

Microsoft Windows [版本 10.0.19041.1]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\\Users\\Administrator>ping 192.168.3.239

正在 Ping 192.168.3.239 具有 32 字节的数据:
来自 192.168.3.239 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.3.239 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.3.239 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.3.239 的回复: 字节=32 时间<1ms TTL=64

192.168.3.239 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\\Users\\Administrator>ping http://192.168.3.239:8088
Ping 请求找不到主机 http://192.168.3.239:8088。请检查该名称,然后重试。

 


--  作者:有点蓝
--  发布时间:2022/5/11 11:24:00
--  
ip要使用ping,不要使用TryConnectHost
--  作者:有点蓝
--  发布时间:2022/5/11 11:30:00
--  
同样网址是不能使用ping的。

升级使用的是什么方式?http?网站是否可以正常访问?

--  作者:cnsjroom
--  发布时间:2022/5/11 11:45:00
--  回复:(有点蓝)同样网址是不能使用ping的。升级使用...

 

升级方式在内部局域网一台http服务器    http网页可以正常打开  ip可以正常ping

非互联网升级方式

有没有解决办法呢?

当前是在http网页可以打开的情况下是可以使用的

主要是要解决http网页不能打开或者不正常情况下  不再弹出那返回的404错误,直接静默不升级即可!


--  作者:有点蓝
--  发布时间:2022/5/11 12:03:00
--  
Dim ipFile As String = ProjectPath & "\\Attachments\\ip.txt"
dim up as boolean
If Filesys.FileExists(ipFile) Then
    Dim ip As String = FileSys.ReadAllText(ipFile)
    If TryConnectHost(ip) = True Then
Dim hc As New HttpClient("升级地址/update.txt")
hc.SkipError = True
If hc.GetFile(ProjectPath &"update.txt") Then
up = Syscmd.Project.Update(False,False)
endif
    End If
End If
        If up = False Then \'如果没有升级
            MainTable=Tables("表a")
            TableCaptionVisible = False
            Forms("会议系统").open
        End If
[此贴子已经被作者于2022/5/11 12:02:46编辑过]