2008-10-31 3 views

ответ

0

Позвоните в веб-сервис, возьмите результат и привяжите его к вашему ретранслятору.

Если вы можете, вы также можете попытаться кэшировать информацию какое-то время на вашей стороне, если возможно, чтобы помочь с общей производительностью.

1

Поскольку вы звоните на другой сайт, вам нужно бороться с двумя проблемами (особенно если этот веб-сервис находится на чужом веб-сайте или в общедоступном Интернете). Во-первых, может быть задержка для извлечения данных с другого веб-сайта. Во-вторых, на другом веб-сайте может быть тайм-аут.

Как минимум вы должны рассмотреть запрос asychronous page. В этом MSDN статье говорится:

Если синхронный запрос становится I/O связанного, например, если он обращается к удаленного веб-службы или запросов к удаленной базе данных и ждет вызова прийти back-then поток, назначенный , к запросу застрял, ничего не делая , пока вызов не вернется. Это препятствует масштабированию , поскольку пул потоков имеет конечное число потоков . Если все запросы обрабатываются потоки блокируются, ожидая завершения операций ввода-вывода , дополнительные запросов получить в очереди в ожидании темы будут бесплатными. В лучшем случае пропускная способность уменьшается, потому что запросы ждут дольше времени обработки. В худшем случае очередь заполняется, и ASP.NET завершает работу последующих запросов с 503 «Сервер « Недоступные »ошибки.

Но лучшим решением, вероятно, является использование AJAX. Загрузите страницу, затем выполните запрос ajax, чтобы заполнить повторитель. Таким образом, вы можете иметь приятную «вращающуюся» графику или что-то еще, что происходит в ожидании на веб-сервисе.