WinInet, THTTPRIO

toc4875834758
Дата: 06.07.2009 18:09:27
Моя программа является клиентом вебсервиса размещенного на IIS и защищённого SSL. Использует компонент THTTPRIO. Всё работает отлично. Но есть большая проблема. Если программа обращается к вебсерверу в то время когда он перезагружается, вызов WinInet.HttpSendRequest(), который совершает THTTPRIO не завершается никогда. Программа висит.

Все таймауты заданы, как мне кажется корректно:
rio.HTTPWebNode.ConnectTimeout := 10* 1000;
rio.HTTPWebNode.SendTimeout := 20 * 1000;
rio.HTTPWebNode.ReceiveTimeout := 20 * 1000;

Мне не удаётся повторить ошибку у себя, т.е. у меня вызовы совершённые ...

  • на остановленный сервер (refused connection)
  • на несуществующий сервер (stealth-порт, connection timeout)
  • к веб методу, который не ответит долго, потому что в нём Thread.Sleep(10*60000)

    успешно отваливается по таймауту с сообщением «превышено время ожидания завершения действия». На продакшн-системе (в удалённой организации) программа виснет при каждой перезагрузке вебсервера.

    В чём может быть дело?
  • Альт
    Дата: 06.07.2009 20:38:02