Procedura: abilitare l'individuazione per i servizi Web XML
Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.
I servizi Web possono essere pubblicati in eventuali client nei modi seguenti:
Utilizzando un file di individuazione XML con estensione disco del nome file.
Utilizzando un URL che specifica un'estensione vsdisco.
Utilizzando un servizio Web con una stringa di query di ?DISCO.
In questo argomento è illustrato come configurare i primi due meccanismi di individuazione. Non viene illustrato come abilitare richieste per un servizio Web con una stringa di query ?DISCO perché questo metodo è già disponibile in modo automatico. Per informazioni su queste opzioni, vedere Pubblicazione e distribuzione dei servizi Web XML.
Per pubblicare un documento di individuazione statico per un servizio Web
Creare un documento XML con l'editor preferito, aggiungendo l'elemento ?xml version="1.0" ? alla prima riga.
All'interno del documento XML, aggiungere l'elemento discovery, ad esempio
<disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/"> </disco:discovery>
All’interno dell’elemento discovery, aggiungere i riferimenti a descrizioni di servizi, a schemi XSD e ad altri documenti di individuazione.
È possibile aggiungere tanti riferimenti quanti se ne desidera esporre pubblicamente. I riferimenti a descrizioni di servizio sono specificati in un documento di individuazione aggiungendo l'elemento contractRef con lo spazio dei nomi XML
https://schemas.xmlsoap.org/disco/scl/
. Analogamente, i riferimenti ad altri documenti di individuazione e schemi XSD sono specificati aggiungendo rispettivamente elementi XML discoveryRef e schemaRef. Per i riferimenti a schemi XSD, deve essere specificato lo spazio dei nomi XMLhttps://schemas.xmlsoap.org/disco/schema
. Per tutti i tre tipi di documenti con riferimenti, specificare il percorso del documento utilizzando l'attributo ref. Nell'esempio di codice seguente sono riportati i riferimenti a un documento di individuazione, a una descrizione del servizio e a uno schema XSD.<?xml version="1.0"?> <discovery xmlns="https://schemas.xmlsoap.org/disco/"> <discoveryRef ref="/Folder/Default.disco"/> <contractRef ref="http://MyWebServer/UserName.asmx?WSDL" docRef="Service.htm" xmlns="https://schemas.xmlsoap.org/disco/scl/"/> <schemaRef ref="Schema.xsd" xmlns="https://schemas.xmlsoap.org/disco/schema/"/> </discovery>
I riferimenti possono essere relativi alla directory dove risiede il documento di individuazione, come mostrato nell’elemento discoveryRef, oppure a un URI, come mostrato nell'elemento contractRef.
Distribuire il documento di individuazione in un server Web copiandolo in una directory virtuale sul server Web.
Facoltativamente, se si vuole consentire ai potenziali utilizzatori di spostarsi a un URL indicando un'applicazione IIS senza dover specificare un documento, è possibile aggiungere un collegamento alla pagina predefinita dell'applicazione IIS. In questo modo, si ottiene il vantaggio che i potenziali utilizzatori non devono sapere il nome dei documenti di individuazione. Durante il processo di individuazione, gli utenti possono quindi fornire URL come il seguente:
http://MyWebServer/MyWebApplication
Se la pagina predefinita dell'applicazione Web è una pagina HTML, aggiungere un collegamento al documento di individuazione nell'elemento head della pagina Web predefinita per il server Web. Ad esempio, se il documento di individuazione viene denominato
MyWebService.disco
e collocato nella stessa directory della pagina predefinita, è necessario inserire l'elemento seguente nella pagina Web predefinita:<HEAD> <link type='text/xml' rel='alternate' href='MyWebService.disco'/> </HEAD>
Se la pagina predefinita per l'applicazione Web è un documento XML, aggiungere un collegamento al documento di individuazione nell'elemento head della pagina Web predefinita per il server Web. Ad esempio, se il documento di individuazione viene denominato
MyWebService.disco
e collocato nella stessa directory della pagina predefinita, è necessario inserire l'elemento seguente all’inizio della pagina Web predefinita:<?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
Per abilitare l’individuazione dinamica per un servizio Web
Per attivare l’individuazione dinamica per un server Web, modificare il file machine.config aggiungendo il seguente elemento <add>. Ignorare le interruzioni di riga nell'esempio seguente, poiché l'attributo type deve essere su una riga.
<configuration> <system.web> <httpHandlers> <add verb="*" path="*.vsdisco" type="System.Web.Services.Discovery.DiscoveryRequestHandler, System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> </httpHandlers> </system.web> </configuration>
Nota: Quando l'individuazione dinamica è abilitata, tutti i servizi Web e i documenti di individuazione presenti sul server Web al di sotto dell’URL richiesto risultano individuabili. Pertanto, se il server Web non si trova su una rete che utilizza un firewall e altre funzionalità di sicurezza, è necessario prestare attenzione quando si abilita l’individuazione dinamica, dal momento che si potrebbero esporre dati sensibili.
Vedere anche
Concetti
Pubblicazione e distribuzione dei servizi Web XML
Opzioni di configurazione per i servizi Web XML creati tramite ASP.NET