Condividi tramite


Procedura: pubblicare metadati per un servizio utilizzando un file di configurazione

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 metadati: utilizzando un file di configurazione o il codice. In questo argomento viene illustrato come pubblicare metadati per un servizio utilizzando un file di configurazione. Per ulteriori informazioni sulla pubblicazione di metadati nel codice, vedere Procedura: pubblicare metadati per un servizio utilizzando codice. 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, creare un servizio WCF di base. Per motivi di semplicità, nel codice seguente viene fornito un servizio indipendente di base.

Questo è un servizio indipendente configurato mediante un file di configurazione. Il file di configurazione seguente serve da punto di partenza di questo argomento.

Per pubblicare metadati per un servizio WCF utilizzando un file di configurazione dell'applicazione

  1. Nel file App.config, dopo l'elemento di chiusura </services>, creare un elemento <behaviors>.

  2. Nell'elemento <behaviors> aggiungere un elemento <serviceBehaviors>.

  3. Aggiungere un elemento <behavior> all'elemento <serviceBehaviors> e specificare un valore per l'attributo name dell'elemento <behavior>.

  4. Aggiungere un elemento <serviceMetadata> all'elemento <behavior>. Impostare l'attributo httpGetEnabled su true e l'attributo policyVersion su Policy15. httpGetEnabled consente al servizio di rispondere a richieste di metadati eseguite da una richiesta HTTP GET. policyVersion indica al servizio di conformarsi a WS-Policy 1.5 per la generazione di metadati.

  5. Aggiungere un attributo behaviorConfiguration all'elemento <service> e specificare l'attributo name dell'elemento <behavior> aggiunto al passaggio 1, come nell'esempio di codice seguente.

  6. Aggiungere uno o più elementi <endpoint> con il contratto impostato su IMetadataExchange, come nell'esempio di codice seguente.

  7. Per gli endpoint di metadati aggiunti al passaggio 6, impostare l'attributo binding su uno dei valori seguenti:

    • mexHttpBinding per la pubblicazione HTTP.
    • mexHttpsBinding per la pubblicazione HTTPS.
    • mexNamedPipeBinding per la pubblicazione named pipe.
    • mexTcpBinding per la pubblicazione TCP.
  8. Per gli endpoint di metadati aggiunti al passaggio 6, impostare l'indirizzo su:

    • Una stringa vuota, per utilizzare l'indirizzo di base dell'applicazione host come punto di pubblicazione, se l'indirizzo di base corrisponde all'associazione di metadati.
    • Un indirizzo relativo, se l'applicazione host ha un indirizzo di base.
    • Un indirizzo assoluto
  9. Creare ed eseguire l'applicazione console.

  10. 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. 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 vengono illustrati l'implementazione di un servizio WCF di base e il file di configurazione che pubblica i metadati per il servizio.

Vedere anche

Attività

Procedura: ospitare un servizio WCF in un'applicazione gestita
Procedura: pubblicare metadati per un servizio utilizzando codice

Riferimenti

ServiceMetadataBehavior

Concetti

Panoramica dell'architettura dei metadati
Utilizzo di metadati

Altre risorse

Self-Host