recibe que por enviar crear consumir como asp.net sql-server vb.net web-services asmx

que - La mejor forma de consumir un servicio web en un código asp.net detrás



enviar xml a web service c# (2)

Debido a que está llamando a otro sitio web, tiene 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, debe considerar una solicitud de página asychronous . Como dice este artículo de MSDN:

Si una solicitud síncrona se convierte en E / S enlazada, por ejemplo, si llama a un servicio web remoto o consulta una base de datos remota y espera a que la llamada vuelva, entonces el hilo asignado a la solicitud queda bloqueado sin hacer nada hasta que la llamada devoluciones. Eso impide la escalabilidad porque el grupo de subprocesos tiene un número finito de subprocesos disponibles. Si todos los subprocesos de procesamiento de solicitudes están bloqueados esperando a que se completen las operaciones de E / S, las solicitudes adicionales se ponen en cola esperando que los hilos sean libres. En el mejor de los casos, el rendimiento disminuye porque las solicitudes esperan más tiempo para procesarse. En el peor de los casos, la cola se llena y ASP.NET falla las solicitudes posteriores con 503 errores de "Servidor no disponible".

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.

Estoy intentando vincular una fuente de datos a un repetidor, por ejemplo, a un servicio web (.asmx desde un sitio web diferente) en la carga de la página. El servicio web devuelve un DataSet desde una llamada sql. ¿Cuál es la mejor manera de hacer esto?


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

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