Поскольку вы звоните на другой веб-сайт, вам приходится сталкиваться с двумя проблемами (особенно если этот веб-сервис находится на чужом веб-сайте или в общедоступном Интернете). Во-первых, может быть задержка для получения данных с другого сайта. Во-вторых, время ожидания на другом сайте может быть превышено.
Как минимум, вы должны рассмотреть запрос асинхронной страницы . Как говорится в этой статье MSDN:
Если синхронный запрос становится I / O
связанный - например, если он призывает
удаленный веб-сервис или запрашивает
удаленная база данных и ждет звонка
вернуться - тогда нить назначена
на запрос застрял, ничего не делая
пока звонок не вернется. Что мешает
масштабируемость, потому что пул потоков
имеет конечное число потоков
имеется в наличии. Если все запросы обрабатываются
потоки заблокированы в ожидании ввода / вывода
операции для завершения, дополнительные
запросы встают в очередь в ожидании
темы должны быть бесплатными. В лучшем случае,
пропускная способность уменьшается, потому что запросы
ждать дольше, чтобы быть обработанным. В худшем случае,
очередь заполняется и сбой ASP.NET
последующие запросы с 503 "сервером
Недоступные "ошибки.
Но лучшим решением, вероятно, является использование AJAX. Загрузите страницу, затем сделайте ajax-запрос, чтобы заполнить ретранслятор. Таким образом, вы можете получить красивую «вращающуюся» графику или что-то еще, пока вы ждете в веб-сервисе.