Condividi tramite


Procedura: configurare un client Windows Communication Foundation di base

Di seguito viene presentata la quinta delle sei attività necessarie per creare un servizio Windows Communication Foundation (WCF) di base e un client in grado di chiamare il servizio. Per una panoramica di tutte e sei le attività, vedere l'argomento Esercitazione introduttiva.

In questo argomento viene aggiunto il file di configurazione client generato utilizzando lo strumento Strumento ServiceModel Metadata Utility Tool (Svcutil.exe) sul progetto client e viene illustrato il contenuto degli elementi di configurazione del client. La configurazione del client è costituita dalla specifica dell'endpoint utilizzato dal client per accedere al servizio. Un endpoint ha un indirizzo, un'associazione e un contratto, e ognuno di questi elementi deve essere specificato nel processo di configurazione del client.

Il contenuto dei file di configurazione generati per il client viene fornito nell'esempio dopo la procedura.

Per configurare un client Windows Communication Foundation

  1. Aggiungere il file di configurazione App.config generato nella procedura Procedura: creare un client di Windows Communication Foundation precedente al progetto client in Visual Studio. Fare clic con il pulsante destro del mouse sul progetto client in Esplora soluzioni, scegliere Aggiungi, quindi Elemento esistente. Selezionare quindi il file di configurazione App.config nella directory da cui è stato eseguito SvcUtil.exe nel passaggio precedente. Il nome del file è App.config perché è stato generato utilizzando l'opzione /config:app.config con lo strumento Svcutil.exe. Scegliere OK. Per impostazione predefinita, nella finestra di dialogo Aggiungi elemento esistente vengono filtrati tutti i file con estensione config. Per visualizzare questi file selezionare Tutti i file (*.*) nella casella di riepilogo a discesa nell'angolo inferiore destro della finestra di dialogo Aggiungi elemento esistente.

  2. Aprire il file di configurazione generato. Svcutil.exe genera valori per ogni impostazione sull'associazione. L'esempio seguente è una visualizzazione del file di configurazione generato. Nella sezione <system.serviceModel> trovare l'elemento <endpoint>. Il file di configurazione seguente è una versione semplificata del file generato.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.serviceModel>
        <bindings>
          <wsHttpBinding>
            <binding name="WSHttpBinding_ICalculator">
            </binding>
          </wsHttpBinding>
        </bindings>
        <client>
          <endpoint
               address="https://localhost:8000/ServiceModelSamples/Service/CalculatorService"
               binding="wsHttpBinding"
               bindingConfiguration="WSHttpBinding_ICalculator"
               contract="Microsoft.ServiceModel.Samples.ICalculator"
               name="WSHttpBinding_ICalculator">
          </endpoint>
        </client>
      </system.serviceModel>
    </configuration> 
    

    In questo esempio viene configurato l'endpoint utilizzato dal client per accedere al servizio disponibile all'indirizzo seguente: https://localhost:8000/ServiceModelSamples/service

    L'elemento endpoint specifica che il contratto Microsoft.ServiceModel.Samples.ICalculator viene utilizzato per la comunicazione, che è configurata con la classe WsHttpBinding fornita dal sistema. Questa associazione specifica HTTP come trasporto, la sicurezza interoperativa e altri dettagli di configurazione.

  3. Per ulteriori informazioni su come utilizzare il client generato con questa configurazione, vedere Procedura: utilizzare un client di Windows Communication Foundation.

Esempio

Nell'esempio viene illustrato il contenuto dei file di configurazione generati per il client.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_ICalculator"     
          closeTimeout="00:01:00"
          openTimeout="00:01:00" 
          receiveTimeout="00:10:00" 
          sendTimeout="00:01:00"
          bypassProxyOnLocal="false" 
          transactionFlow="false"  
          hostNameComparisonMode="StrongWildcard"
          maxBufferPoolSize="524288" 
          maxReceivedMessageSize="65536"
          messageEncoding="Text" 
          textEncoding="utf-8" 
          useDefaultWebProxy="true"
          allowCookies="false">
          <readerQuotas maxDepth="32" 
            maxStringContentLength="8192" 
            maxArrayLength="16384"
            maxBytesPerRead="4096" 
            maxNameTableCharCount="16384" />
          <reliableSession ordered="true" 
            inactivityTimeout="00:10:00"
            enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" 
              proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="Windows" 
              negotiateServiceCredential="true"
              algorithmSuite="Default" 
              establishSecurityContext="true" />
           </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <client>
    <endpoint address="https://localhost:8000/ServiceModelSamples/Service/CalculatorService"
      binding="wsHttpBinding" 
      bindingConfiguration="WSHttpBinding_ICalculator"
      contract="ICalculator" 
      name="WSHttpBinding_ICalculator">
        <identity>
          <userPrincipalName value="user@contoso.com" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

Il client è stato configurato. Passare all'argomento Procedura: utilizzare un client di Windows Communication Foundation. Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi all'esercitazione introduttiva.

Vedere anche

Attività

Procedura: creare un client di Windows Communication Foundation
Esempio della guida introduttiva
Servizio indipendente

Concetti

Utilizzo di associazioni per configurare servizi e client
Strumento ServiceModel Metadata Utility Tool (Svcutil.exe)