Если получаемый вами ответ достаточно велик. Клиенту нужно некоторое время для получения данных.
Существует несколько параметров времени ожидания:
ConnectionTimeout : Указывает время в миллисекундах, в течение которого клиент будет пытаться установить соединение до истечения времени ожидания. По умолчанию 30000 (30 секунд). 0 указывает, что клиент будет продолжать пытаться открыть соединение в течение неопределенного времени.
ReceiveTimeout : Указывает время в миллисекундах, в течение которого клиент будет ожидать ответа, прежде чем истечет время ожидания. Значение по умолчанию - 60000. 0 указывает, что клиент будет ждать бесконечно.
Чтобы не было тайм-аутов соединения, вы можете использовать 0
или хотя бы большее число. Однако это может иметь последствия для вашего приложения.