Procedura: usare Svcutil.exe per scaricare documenti di metadati
È possibile utilizzare Svcutil.exe per scaricare i metadati dai servizi in esecuzione e salvarli in file locali. Per gli schemi URL HTTP e HTTPS, Svcutil.exe tenta di recuperare i metadati usando WS-MetadataExchange e Individuazione dei servizi Web XML. Per tutti gli altri schemi URL, Svcutil.exe utilizza solo WS-MetadataExchange.
Per impostazione predefinita, Svcutil.exe utilizza le associazioni definite nella classe MetadataExchangeBindings. Per configurare l'associazione utilizzata per WS-MetadataExchange, nel file di configurazione di Svcutil.exe (svcutil.exe.config) è necessario definire un endpoint client che utilizza il contratto IMetadataExchange
e che ha lo stesso nome dello schema URI (Uniform Resource Identifier) dell'indirizzo dell'endpoint dei metadati.
Attenzione
Quando si esegue Svcutil.exe per ottenere i metadati per un servizio che espone due contratti di servizio diversi che contengono un'operazione con lo stesso nome, Svcutil.exe viene visualizzato un errore che indica che "Impossibile ottenere metadati da..." Ad esempio, se si dispone di un servizio che espone un contratto di servizio denominato ICarService
con un'operazione Get(Car c)
e lo stesso servizio espone un contratto di servizio denominato IBookService
che dispone di un'operazione Get(Book b)
. Per ovviare al problema, effettuare una delle seguenti operazioni:
Per scaricare metadati utilizzando Svcutil.exe
Individuare lo strumento Svcutil.exe nel percorso seguente:
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
Al prompt dei comandi, avviare lo strumento utilizzando il formato seguente.
svcutil.exe /t:metadata <url>* | <epr>
Per scaricare i metadati, è necessario specificare l'opzione
/t:metadata
. In caso contrario, verranno generati il codice client e la configurazione.L'argomento
<url>
specifica l'URL di un endpoint di servizio che fornisce metadati o a un documento di metadati ospitato online. L'argomento<epr>
specifica il percorso di un file XML contenente un elementoEndpointAddress
WS-Addressing per un endpoint servizio che supporta WS-MetadataExchange.
Per altre opzioni sull'uso di questo strumento per il download dei metadati, vedere lo strumento ServiceModel Metadata Utility (Svcutil.exe).
Esempio
Con il comando seguente vengono scaricati i documenti di metadati da un servizio in esecuzione.
svcutil /t:metadata http://service/metadataEndpoint