Salve,
Essa semana enfrentei um sério transtorno com erro de TimeOut em um Webservice consumido via SoapConnection. Depois pesquisar bastante descobri que o tempo de retorno de um Webservice é algo definido pelo Windows, e que a atualização do Internet Explorer pode alterar tal configuração. A boa notícia é que dá pra configurar isso via Delphi, invocando uma procedure disponível na unit WinInet. Bom chega de prosa e vamos à solução!
No componente TSoapConnection, procure pelo evento OnBeforeExecute, e codifique-o conforme exemplo abaixo:
procedure TForm1.soapConnBeforeExecute(
const MethodName: String; var SOAPRequest: WideString);
var timeOut: Integer;
begin
timeOut := 360000;
InternetSetOption(nil, INTERNET_OPTION_RECEIVE_TIMEOUT, pointer(@timeOut), sizeof(timeOut));
end;
Não se esqueça de adicionar na cláusula Uses a unit WinInet.
Té+