Condividi tramite


Metodi di servizio Web asincroni

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

Per migliorare le prestazioni dei metodi dei servizi Web che richiamano metodi di lunga durata che bloccano il thread, è necessario esporli come metodi asincroni del servizio Web. L'implementazione di un metodo di servizio Web asincrono consente a un thread di eseguire altro codice dopo essere ritornato al pool di thread. Ciò consente di eseguire un thread in più rispetto al numero limitato di thread nel pool di thread, migliorando la prestazione complessiva e la scalabilità del sistema.

Per una spiegazione dettagliata di come convertire un metodo di aervizio Web in una coppia di metodi progetta per accesso asincrono, vedere Procedura: creare metodi asincroni del servizio Web. Per un altro esempio di codice, vedere Procedura: concatenare le chiamate asincrone con un metodo del servizio Web.

In generale, i metodi di servizio Web che chiamano metodi che eseguono operazioni I/O sono buoni candidati per l'implementazione asincrona. Esempi di tali metodi includono metodi che comunicano con altri servizi Web, accedono a database remoti, eseguono l'I/O di rete e leggono e scrivono file di grosse dimensioni. Tutti questi metodi per la maggior parte del tempo sono in esecuzione hardware, il che lascia il thread per l'esecuzione del metodo di servizio Web bloccato. Tale thread può essere sbloccato per eseguire altro codice se il metodo di servizio Web viene implementato in modo asincrono.

Indipendentemente dal fatto che un metodo di servizio Web sia implementato in modo asincrono o meno, i client possono comunicare con esso in modo asincrono. La comunicazione asincrona viene esposta ai client .NET all'interno della classe proxy generata dallo strumento WSDL.EXE (Web Services Description Language), anche se un metodo di servizio Web è implementato in modo sincrono. La classe proxy contiene metodi Begin e End per comunicare in modo asincrono con ogni metodo di servizio Web. Pertanto, la decisione di implementare in modo asincrono o in modo sincrono un metodo di servizio Web deve essere basata sulle prestazioni.

83bkx91t.note(it-it,VS.100).gifNota:
L'implementazione di un metodo di servizio Web asincrono non ha impatto sulla connessione HTTP tra il client e il server che ospita il servizio Web. La connessione HTTP non viene chiusa né inserita in un pool.

Vedere anche

Attività

Procedura: creare metodi asincroni del servizio Web
Procedura: concatenare le chiamate asincrone con un metodo del servizio Web

Concetti

Comunicazione asincrona con i servizi Web XML

Altre risorse

Creare servizi Web XML mediante ASP.NET