Procedura: pubblicare metadati per un servizio utilizzando codice

Questo è uno dei due argomenti in cui viene illustrato come pubblicare metadati per un servizio Windows Communication Foundation (WCF). Esistono due modi per specificare come un servizio dovrebbe pubblicare i metadati: utilizzando un file di configurazione o il codice. In questo argomento viene illustrato come pubblicare metadati per un servizio utilizzando un codice. Per ulteriori informazioni sulla pubblicazione di metadati in un file di configurazione, vedere Procedura: pubblicare metadati per un servizio utilizzando un file di configurazione. La pubblicazione di metadati consente ai client di recuperarli utilizzando una richiesta GET WS-Transfer o una richiesta HTTP/GET tramite la stringa di query ?wsdl. Per essere certi che il codice funzioni, è necessario creare un servizio WCF di base. Nel codice seguente viene fornito un servizio indipendente di base.

Per pubblicare metadati nel codice

  1. All'interno del metodo principale di un'applicazione console, creare un'istanza di un oggetto ServiceHost passando il tipo di servizio e l'indirizzo di base.

  2. Creare un blocco try subito sotto il codice per il passaggio 1. In tal modo verranno rilevate tutte le eccezioni generate mentre il servizio è in esecuzione.

  3. Controllare se l'host del servizio contiene già un ServiceMetadataBehavior. In caso contrario, creare una nuova istanza di ServiceMetadataBehavior.

  4. Impostare la proprietà HttpGetEnabled su true.

  5. ServiceMetadataBehavior contiene una proprietà MetadataExporter. MetadataExporter contiene una proprietà PolicyVersion. Impostare il valore della proprietà PolicyVersion su Policy15. La proprietà PolicyVersion può essere impostata anche su Policy12. Quando è impostata su Policy15 l'utilità di esportazione dei metadati genera informazioni sui criteri con metadati conformi a WS-Policy 1.5. Quando è impostata su Policy12 l'utilità di esportazione dei metadati genera informazioni sui criteri conformi a WS-Policy 1.2.

  6. Aggiungere l'istanza di ServiceMetadataBehavior all'insieme di comportamenti dell'host del servizio.

  7. Aggiungere l'endpoint di scambio dei metadati all'host del servizio.

  8. Aggiungere un endpoint dell'applicazione all'host del servizio.

  9. Aprire l'host del servizio e attendere le chiamate in ingresso. Quando l'utente preme il tasto INVIO, chiudere l'host del servizio.

  10. Creare ed eseguire l'applicazione console.

  11. Utilizzare Internet Explorer per portarsi sull'indirizzo di base del servizio (https://localhost:8001/MetadataSample in questo esempio) e verificare che la pubblicazione dei metadati sia attivata. Dovrebbe venire visualizzata una pagina Web con scritto "Simple Service" in alto, seguito subito sotto da "È stato creato un servizio". Se così non fosse, all'inizio della pagina risultante verrà visualizzato il messaggio: "La pubblicazione dei metadati per il servizio è attualmente disabilitata".

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione di un servizio di base WCF che pubblica i metadati per il servizio nel codice.

Vedere anche

Attività

Procedura: ospitare un servizio WCF in un'applicazione gestita
Procedura: pubblicare metadati per un servizio utilizzando un file di configurazione

Concetti

Panoramica dell'architettura dei metadati
Utilizzo di metadati

Altre risorse

Self-Host