看今天有冇可能遇到大虾帮偶解决一个问题,关于WebService连接超时的问题...(50分)

  • 主题发起人 主题发起人 ePing
  • 开始时间 开始时间
E

ePing

Unregistered / Unconfirmed
GUEST, unregistred user!
当利用HTTPRIO访问WebService提供的方法的时候,有可能由于网络的

问题导致他长时间没有弹出Exception直到连接超时,偶现在想自己设置

这个超时时间,但是找不到在哪里设置,万望哪位曾经做过这方面的大虾

多提点,谢谢先...
 
是在发布WebService的IIS上设置,如果是.NET写的WebService的话,可以修改Web.config文件。
 
多谢楼上仁兄的回复

偶想请问您一般如何处理调用WebService的方法的错误处理的,谢谢.

 
您说的这是在IIS正常情况下的情况,如果是在IIS不正常的情况下呢?

类似于Socket的应该可以在Client端设置Connect Timeout,可否在

HTTPRIO(客户端)上设置连接超时.
 
try
FReturn := (Soap as RESoap).CheckUser(edName.Text, edPass.Text);
except
FReturn := 'Error'; //网络超时或其它错误
end;
if (FReturn = '') or (FReturn = 'Error') then
Application.Messagebox('网络服务请求失败,请检查网络连接或稍后重试。','错误')
else beign
.......
end;
 
我以前也曾找过,但客户端好像不能控制超时时间,至少我找不到。
不信你可以打开SOAPHTTPClient单元,找不到一个同时间有关的地方。

如果你真想控制客户端过一段时间后,停止连接的话,完全可以写一个线程控制时间,在进行Webservice连接前启动线程,如果在指定时间内得到了结果则关闭线程,如果当线程运行若干时间后还未返回值的话,用线程将这个连接中断就可以了。
 
偶测试了一下假如偶正常访问,并且一切都正常的情况访问,只需要0.247秒就可以得到结果

如果偶随便写一个地址,它整个出错的过程需要将近20秒才会告诉你连接超时..偶觉得这个

应该是客户端能够干预的,至于怎样干预可能需要找人问一下,楼上仁兄你英文咋样,帮偶到

Borland的新闻组去问一下吧,偶的英文实在是..........唉..........
 
to eping:
borland的新闻组地址是什么?
 
Borland的新闻组地址是forums.borland.com
 
try
(HTTPRIO1 as ITest).TestFunction(aParam, bParam);
except
On e: Exception do
showmessage(e.message);
end;
这段语句如果在网络出现问题,或者服务端IIS没有开启,或者
其他能够导致异常的时候, 弹出异常需要一段时间,这段时间
程序基本不能动,好像死了一样,请问如何加快这个弹出异常
的时间,谢谢大家,一个问题搞乐好长时间都没有搞定,哪位大虾
知道望告之,再一个,如何设置THTTPRIO的连接超时啊,如果能够
将这个超时时间设置很短的话,我想,返回超时错误的时间应该
就很短
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部