Condividi tramite


WSHttpBinding

Nell'esempio wsHttp viene illustrato come implementare un servizio tipico e un client tipico usando Windows Communication Foundation (WCF). Questo esempio è costituito da un programma di console client (client.exe) e da una libreria di servizi ospitati da Internet Information Services (IIS). Il servizio implementa un contratto che definisce un modello di comunicazione richiesta/risposta. Il contratto è definito dall'interfaccia ICalculator che espone operazioni matematiche (somma, sottrazione, moltiplicazione e divisione). Il client esegue richieste sincrone a un'operazione matematica specificata e il servizio risponde fornendo il risultato. L'attività del client è visibile nella finestra della console.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

In questo esempio viene esposto il contratto ICalculator usando <wsHttpBinding>. La configurazione di questa associazione è stata espansa nel file Web.config.

<bindings>
  <wsHttpBinding>
    <!--The following is the expanded configuration section for a-->
    <!--WSHttpBinding. Each property is configured with the default-->
    <!--value. See the ReliableSession, TransactionFlow, -->
    <!--TransportSecurity, and MessageSecurity samples in the WS -->
    <!--directory to learn how to configure these features. -->
    <binding name="Binding1"
              bypassProxyOnLocal="false"
              transactionFlow="false"
              hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize="524288"
              maxReceivedMessageSize="65536"
              messageEncoding="Text"
              textEncoding="utf-8"
              useDefaultWebProxy="true"
              allowCookies="false">
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Message">
        <message clientCredentialType="Windows"
                 negotiateServiceCredential="true"
                 algorithmSuite="Default"
                 establishSecurityContext="true" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

Sull'elemento binding di base, il valore maxReceivedMessageSize consente di configurare la dimensione massima di un messaggio in arrivo (in byte). Il valore hostNameComparisonMode consente di configurare se il nome host viene considerato quando si esegue il demultiplexing dei messaggi al servizio. Il valore messageEncoding consente di configurare se utilizzare la codifica di testo o MTOM per i messaggi. Il valore textEncoding consente di configurare la codifica dei caratteri per i messaggi. Il valore bypassProxyOnLocal consente di configurare se utilizzare un proxy HTTP per la comunicazione locale. Il valore transactionFlow configura se la transazione corrente viene propagata (se un'operazione è configurata per il flusso delle transazioni).

Sull'elemento <reliableSession>, il valore booleano abilitato configura se le sessioni affidabili sono abilitate. Il valore ordered configura se l'ordinamento dei messaggi viene mantenuto. Il valore inactivityTimeout configura per quanto tempo una sessione può essere inattiva prima che venga generato un errore.

In <security>, il valore mode configura quale modalità di sicurezza deve essere utilizzata. In questo esempio, viene utilizzata la sicurezza dei messaggi e pertanto <message> viene specificato in <security>.

Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Premere INVIO nella finestra del client per arrestare il client.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Per impostare, compilare ed eseguire l'esempio

  1. Installare ASP.NET 4.0 usando il comando seguente.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Assicurarsi di aver eseguito la Procedura di installazione singola per gli esempi di Windows Communication Foundation.

  3. Per compilare l'edizione in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Building the Windows Communication Foundation Samples.

  4. Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.