Condividi tramite


Esercitazione: Creare un client di Windows Communication Foundation

Questa esercitazione descrive la quarta delle cinque attività necessarie per creare un'applicazione Windows Communication Foundation (WCF) di base. Per una panoramica delle esercitazioni, vedere Esercitazione: Introduzione alle applicazioni Windows Communication Foundation.

L'attività successiva per la creazione di un'applicazione WCF consiste nel creare un client recuperando i metadati da un servizio WCF. Si usa Visual Studio per aggiungere un riferimento al servizio, che ottiene i metadati dall'endpoint MEX del servizio. Visual Studio genera quindi un file di codice sorgente gestito per un proxy client nella lingua scelta. Crea anche un file di configurazione client (App.config). Questo file consente all'applicazione client di connettersi al servizio in un endpoint.

Nota

Se si chiama un servizio WCF da un progetto di libreria di classi in Visual Studio, usare la funzionalità Aggiungi riferimento al servizio per generare automaticamente un proxy e un file di configurazione associato. Tuttavia, poiché i progetti di libreria di classi non usano questo file di configurazione, è necessario aggiungere le impostazioni nel file di configurazione generato al file App.config per l'eseguibile che chiama la libreria di classi.

Nota

In alternativa, usare lo strumento ServiceModel Metadata Utility anziché Visual Studio per generare la classe proxy e il file di configurazione.

L'applicazione client utilizza la classe proxy generata per comunicare con il servizio. Questa procedura è descritta in Esercitazione: Usare un client.

In questa esercitazione apprenderai a:

  • Creare e configurare un progetto di app console per il client WCF.
  • Aggiungere un riferimento al servizio WCF per generare la classe proxy e i file di configurazione.

Creare un client Windows Communication Foundation

  1. Creare un progetto di app console in Visual Studio:

    1. Dal menu File selezionare Apri>Progetto/soluzione e passare alla soluzione GettingStarted creata in precedenza (GettingStarted.sln). Selezionare Apri.

    2. Dal menu Visualizza selezionare Esplora soluzioni.

    3. Nella finestra Esplora soluzioni selezionare la soluzione GettingStarted (nodo superiore) e quindi selezionare Aggiungi>Nuovo progetto dal menu di scelta rapida.

    4. Nella finestra Aggiungi nuovo progetto selezionare la categoria Desktop di Windows in Visual C# o Visual Basic.

    5. Selezionare il modello App console (.NET Framework) e immettere GettingStartedClient come Nome. Seleziona OK.

  2. Aggiungere un riferimento nel progetto GettingStartedClient all'assembly System.ServiceModel:

    1. Nella finestra Esplora soluzioni selezionare la cartella Riferimenti nel progetto GettingStartedClient e quindi selezionare Aggiungi riferimento dal menu di scelta rapida.

    2. Nella finestra Aggiungi riferimento, in Assembly a sinistra della finestra selezionare Framework.

    3. Trovare e selezionare System.ServiceModel e quindi scegliere OK.

    4. Salvare la soluzione selezionando File>Salva tutto.

  3. Aggiungere un riferimento al servizio calcolatrice:

    1. Nella finestra Esplora soluzioni selezionare la cartella Riferimenti nel progetto GettingStartedClient e quindi selezionare Aggiungi riferimento al servizio dal menu di scelta rapida.

    2. Nella finestra Aggiungi riferimento al servizio selezionare Individua.

      Il servizio CalculatorService viene avviato e Visual Studio lo visualizza nella casella Servizi.

    3. Selezionare CalculatorService per espanderlo e visualizzare i contratti di servizio implementati dal servizio. Lasciare lo spazio dei nomi predefinito e scegliere OK.

      Visual Studio aggiunge un nuovo elemento nella cartella Servizi connessi e nel progetto GettingStartedClient.

Strumento ServiceModel Metadata Utility Tool

Negli esempi seguenti viene illustrato come usare facoltativamente lo strumento ServiceModel Metadata Utility (Svcutil.exe) per generare il file di classe proxy. Questo strumento genera il file di classe proxy e il file App.config. Gli esempi seguenti illustrano come generare rispettivamente il proxy in C# e Visual Basic:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/GettingStarted/CalculatorService
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/GettingStarted/CalculatorService

File di configurazione del client

Dopo aver creato il client, Visual Studio crea il file di configurazione App.config nel progetto GettingStartedClient, che dovrebbe essere simile all'esempio seguente:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <!-- specifies the version of WCF to use-->
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <system.serviceModel>
            <bindings>
                <!-- Uses wsHttpBinding-->
                <wsHttpBinding>
                    <binding name="WSHttpBinding_ICalculator" />
                </wsHttpBinding>
            </bindings>
            <client>
                <!-- specifies the endpoint to use when calling the service -->
                <endpoint address="http://localhost:8000/GettingStarted/CalculatorService"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
                    contract="ServiceReference1.ICalculator" name="WSHttpBinding_ICalculator">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>

Nella sezione <system.serviceModel> osservare l'elemento <endpoint>. L'elemento <endpoint> definisce l'endpoint usato dal client per accedere al servizio come indicato di seguito:

  • Indirizzo: http://localhost:8000/GettingStarted/CalculatorService. L'indirizzo dell'endpoint.
  • Contratto di servizio: ServiceReference1.ICalculator. Il contratto di servizio gestisce la comunicazione tra il client WCF e il servizio. Visual Studio ha generato questo contratto quando è stata usata la relativa funzione Aggiungi riferimento al servizio. Si tratta essenzialmente di una copia del contratto che è stato definito nel progetto GettingStartedLib.
  • Binding: WSHttpBinding. Con l'associazione vengono specificati HTTP come trasporto, la sicurezza interoperativa e altri dettagli di configurazione.

Passaggi successivi

Questa esercitazione ha descritto come:

  • Creare e configurare un progetto di app console per il client WCF.
  • Aggiungere un riferimento al servizio WCF per generare la classe proxy e i file di configurazione per l'applicazione client.

Passare all'esercitazione successiva per apprendere come usare il client generato.