以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 网络或ftp服务器不通时如何快速提示?(未解决) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=51932) |
-- 作者:zpx_2012 -- 发布时间:2014/6/5 19:26:00 -- 网络或ftp服务器不通时如何快速提示?(未解决) 为了实现打开项目时自动升级,用了如下代码: \'连接FTP服务器 Dim ftp As New FTPClient ftp.Host = "x.x.213.82" ftp.Account = "xxx" ftp.Password = "jxxxx" ftp.RootDir = "\\Update" \'设置目录路径. If ftp.Connect Then \'如果FTP连接成功 。。。自动升级的代码 end if 。。。继续打开项目 现在问题是如果ftp服务器连接不上,则要等很久至少十几二十秒才会继续执行后面的代码,有没有办法用时间控制,如果5秒连接不上就不升级,ftp就跳过自动执行后面的代码。 这个问题在打开项目时也同样会出现,如果数据源连接不上也要等很久才跳出错误框,能否5秒连接不上就提示网络不通,过会儿再联系,用帮肋中的TryConnectHost,NetworkAddressChanged,NetworkAvailabilityChanged 三个事件测试都无法达到这种效果,有没有其他办法? 谢谢!
[此贴子已经被作者于2014-6-7 10:51:08编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/6/5 19:30:00 -- 用ping吧,可以设置超时时间
http://www.foxtable.com/help/topics/1401.htm
|
-- 作者:yd0731 -- 发布时间:2014/6/5 19:34:00 -- 如果服务器设置的不允许ping呢,如何解决? |
-- 作者:有点甜 -- 发布时间:2014/6/5 19:37:00 -- ftpClient公共属性,如下
Connected
那就设置ftpClient的Timeout |
-- 作者:zpx_2012 -- 发布时间:2014/6/5 19:47:00 -- 谢谢,那打开项目连接数据源时怎么样才能设置呢,象3楼所述有的服务器是禁用ping的,有没有其他办法,这个问题因扰了好久。 |
-- 作者:有点甜 -- 发布时间:2014/6/5 19:48:00 -- 设置ftpClient的Timeout |
-- 作者:有点甜 -- 发布时间:2014/6/5 19:50:00 -- 如果是数据源
if Connections.Tryconnect("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=订单;Data Source=110.110.110.110;Connect Timeout = 10;") then |
-- 作者:zpx_2012 -- 发布时间:2014/6/5 20:00:00 -- 好的,谢谢! |
-- 作者:zpx_2012 -- 发布时间:2014/6/7 9:28:00 -- 按有点甜老师所述加了timeout,但ftp服务器不通时测试了下要等21秒才能继续,为什么不起作用?谢谢! \'连接FTP服务器 Dim ftp As New FTPClient ftp.Host = "x.x.213.82" ftp.Account = "xxx" ftp.Password = "jxxxx" ftp.TimeOut = 3000 \'默认秒 ftp.RootDir = "\\Update" \'设置目录路径. If ftp.Connect Then \'如果FTP连接成功 。。。自动升级的代码 end if 。。。继续打开项目 |
-- 作者:Bin -- 发布时间:2014/6/7 11:05:00 -- \'连接FTP服务器 Dim ftp As New FTPClient ftp.Host = "x.x.213.82" ftp.Account = "xxx" ftp.Password = "jxxxx" ftp.TimeOut = 3000 \'默认秒 ftp.RootDir = "\\Update" \'设置目录路径. If ftp.Connect Then \'如果FTP连接成功 \' ...自动升级的代码 Else MessageBox.show(21) end if 我测试3秒就会弹出 21
|