2008-10-31 11 views

Respuesta

0

Llame al servicio web, tome el resultado y conéctelo a su repetidor.

Si puede, también puede intentar almacenar en caché la información durante un tiempo de su lado, si es posible para ayudar con el rendimiento general.

1

Como llamas a otro sitio web, tienes que lidiar con dos problemas (especialmente si este servicio web está en el sitio web de otra persona o en Internet público). En primer lugar, puede haber un retraso para recuperar los datos del otro sitio web. En segundo lugar, el otro sitio web podría agotar el tiempo de espera.

Como mínimo deberías considerar una solicitud de asychronous page. A medida que este MSDN artículo dice:

Si una solicitud síncrona se convierte en I/O unido, por ejemplo, si se llama a un servicio Web remoto o consulta una base de datos remota y espera a la llamada que vaya back-then el hilo asignado a la solicitud está trabado sin hacer nada hasta que la llamada regrese. Eso impide la escalabilidad porque el grupo de subprocesos tiene un número finito de subprocesos disponible. Si todos los subprocesos de solicitud de procesamiento están bloqueados esperando a que se completen las operaciones de E/S , las solicitudes adicionales se ponen en cola esperando que hilos estén libres. En el mejor de los casos, el rendimiento de disminuye porque las solicitudes esperan más tiempo para procesarse. En el peor de los casos, la cola se llena y ASP.NET falla solicitudes subsiguientes con 503 errores "Server Unavailable".

Pero la mejor solución es probablemente usar AJAX. Cargue la página y luego haga una solicitud ajax para llenar el repetidor. De esta forma, puede tener el bonito gráfico "girando" u otra cosa que ocurra mientras espera el servicio web.

Cuestiones relacionadas