现在偶遇到一种问题,在某种网络情况下(拔掉网线),客户端用soapconection as 一个接口实例,然后调用webservice的接口,会出现timed out,然后,反复出现几次timed out,此时把网线插上,以后的情况,调用Webservice接口就变成了timed out。此时,在此进程中,重新建立一个soapconnection,实例话接口,也是出现timed out的情况(此时的网络是好的,但是,再也调用不了接口了,除非重新运行该exe)。

解决方案 »

  1.   

    现在的情况比较明了了,我soapconnection是放在线程中的,在某种网络状态下面(网络是断开的),soapconnection转化成的接口调用出现,进入接口调用,然后就没有返回了。此时,我terminate线程,然后再进行连接,再也无法调用接口了。也就是说,很可能是soapconnection资源未释放造成的。我该怎么办呢?当时线程已经死掉了。如果不terminate没有办法结束线程。有没有一种让soapconnection连接超时的方法呢?(能不能修改soapconection的连接超时时间?)
      

  2.   

    有没有哪位高手能够修改soapconnection的接口调用超时时间??
      

  3.   

    我在soapconnection的一个事件里面这样写,为什么不行啊?哪位高手可以给偶指点一二?
    procedure TForm1.SoapConnection1BeforeExecute(const MethodName: String;
      var SOAPRequest: WideString);
    var timeOut: integer;
    begin
      timeOut := 1000;
      InternetSetOption(nil, INTERNET_OPTION_CONNECT_TIMEOUT , pointer(@timeout), sizeof(timeOut));
    end;