Fondamenti del servizio Web XML ASP.NET
Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.
Dal momento che ASP.NET fornisce l'infrastruttura per i meccanismi interni di un servizio Web, gli sviluppatori possono dedicarsi all'implementazione delle funzionalità dello specifico servizio Web. L'abilitazione di un servizio Web mediante ASP.NET comporta la creazione di un file con estensione asmx, la dichiarazione di un Servizio Web in tale file e probabilmente un altro file, nonché la definizione dei metodi di servizio Web. Le procedure sono elencate e spiegate in Procedura dettagliata: compilazione di un servizio Web XML di base tramite ASP.NET.
Dichiarazione di servizi Web
Quando si crea un servizio Web in ASP.NET, si inserisce la necessaria direttiva @ WebService all'inizio di un file di testo con estensione asmx. La presenza del file asmx e della direttiva @ WebService serve a mettere in relazione l'indirizzo URL del servizio Web con l'implementazione. Viene inoltre implementata la classe del servizio Web che definisce i metodi e tipi di dati visibili dai client del servizio Web.
La classe del servizio Web che viene definita può essere inclusa direttamente nel file asmx o in un file separato. Se si utilizza un file separato, deve essere compilato in un assembly. Facoltativamente, è possibile applicare un attributo WebService alla classe che implementa il servizio Web. La classe che implementa il servizio Web può derivare dalla classe WebService.
Tramite l'applicazione dell’attributo facoltativo WebService su una classe che implementa un servizio Web, è possibile impostare lo spazio dei nomi XML predefinito per il servizio Web insieme a una stringa per descrivere il servizio Web. È consigliabile modificare lo spazio dei nomi predefinito, originariamente http://tempuri.org, prima di rendere utilizzabile pubblicamente il servizio Web. Questo aspetto è importante perché il servizio Web deve essere distinto dagli altri che potrebbero utilizzare inavvertitamente lo spazio dei nomi (<http://tempuri.org/>) come predefinito.
Le classi che implementano un servizio Web utilizzando ASP.NET possono derivare facoltativamente dalla classe WebService per accedere agli oggetti ASP.NET comuni, ad esempio Application, Session, User e Context. Le proprietà Application e Session forniscono l’accesso allo stato di archiviazione e di ricezione attraverso il ciclo di vita dell'applicazione Web o di una particolare sessione. Per ulteriori informazioni sulla gestione dello stato, vedere Procedura: gestire lo stato nei servizi Web XML esistenti creati tramite ASP.NET. Se l'autenticazione è abilitata, la proprietà User contiene l'identità del chiamante per il servizio Web. Con l'identità, un servizio Web è in grado di determinare se la richiesta è autorizzata. Per ulteriori informazioni sull'autenticazione, vedere la sezione relativa alla sicurezza dei servizi Web XML. La proprietà Context fornisce accesso a tutte le informazioni specifiche di HTTP sulla richiesta del client del Servizio Web. Per ulteriori informazioni sulla proprietà Context, vedere WebService.Context Property.
Definizione dei metodi del servizio Web
I metodi di una classe che implementano un servizio Web non hanno la possibilità di ricevere richieste e restituire risposte in modo automatico, tuttavia è molto semplice aggiungere tale funzionalità con i servizi Web creati utilizzando ASP.NET. Applicare un attributo WebMethod ai metodi pubblici. I metodi di una classe del servizio Web che possono essere comunicati sul Web sono chiamati metodi del servizio Web.
I metodi del servizio Web sono una parte fondamentale dell'infrastruttura di messaggistica utilizzata dai servizi Web. In altre parole, per impostazione predefinita, un client e un servizio Web comunicano utilizzando messaggi, specificamente messaggi SOAP. I client inviano una richiesta SOAP a un servizio Web e in genere un metodo del servizio Web restituisce una risposta SOAP. I servizi Web definiscono il tipo di messaggi accettati utilizzando le operazioni definite da WSDL (Web Services Description Language). Queste operazioni sono in correlazione a ognuno dei metodi all'interno di un servizio Web. Anche se ciascuno di questi metodi è definito in ASP.NET utilizzando un metodo di una classe, è importante comprendere che i dati comunicati sulla rete devono essere serializzati in XML. Per questa ragione, è importante ricordare che i servizi Web non sostituiscono DCOM, ma sono piuttosto un'infrastruttura di messaggistica per la comunicazione tra piattaforme mediante l'utilizzo di standard industriali.
Vedere anche
Attività
Procedura dettagliata: compilare un servizio Web XML di base tramite ASP.NET
Riferimento
WebService Class
WebServiceAttribute Class
WebMethodAttribute Class