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)
успешно отваливается по таймауту с сообщением «превышено время ожидания завершения действия». На продакшн-системе (в удалённой организации) программа виснет при каждой перезагрузке вебсервера.
В чём может быть дело?