以文本方式查看主题

-  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
Port
Timeout
Host
Account
Password
BinaryMode
UTF8
BufferSize
UploadBufferSize
ShowUI
RootDir
LocalDir
UploadEnabled
DownloadEnabled
RenameEnabled
DeleteEnabled
MakerDirEnabled
OpenFileEnabled
CurrentDir

 

那就设置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