Tengo un servicio web WCF que actúa como proveedor de datos para mi página web ASP.NET.Reutilización de clientes del servicio WCF
A lo largo de la página web, se realizan varias llamadas al servicio web a través de ServiceClient autogenerado.
Actualmente creo un nuevo ServiceClient y lo abro para cada solicitud, es decir, obtener usuarios, obtener funciones, obtener una lista de clientes, etc. ... Cada uno de estos crearía un nuevo ServiceClient y abriría una nueva conexión.
¿Puedo hacer que mi clase ServiceClient sea una clase global o estáticamente disponible para que todas las funciones dentro de mi página web ASP.NET puedan usar el mismo cliente? Esto parece ser mucho más eficiente. ¿Hay algún problema con hacerlo de esta manera? ¿Algún consejo que debería tener en cuenta al hacer esto?
¿Qué ocurre si realizo varias solicitudes a un cliente? Es de suponer que todo es sincrónico, por lo que no debería importar si hago 1 o 50 llamadas a él?
Gracias
¿Esto no crearía simplemente una nueva conexión para cada solicitud, en lugar de realizar todas mis solicitudes a través de una conexión? – Chris
No creo que cree una conexión para cada solicitud, simplemente la abre (cuando llamas abierta) ... pero no estoy 100% seguro. Creo que crear la conexión es la parte que cuesta mucho. Esto podría verificarse fácilmente, implementar un cliente simple como este y hacer dos llamadas idénticas donde está cronometrando las llamadas. Si estoy en lo cierto, la segunda llamada debería ser mucho más rápida. –
Y normalmente ** no ** quiere mantener la conexión abierta para siempre, el flujo normal es la conexión abierta, llame y luego cierre. –