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
Installare ASP.NET 4.0 usando il comando seguente.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Assicurarsi di aver eseguito la Procedura di installazione singola per gli esempi di Windows Communication Foundation.
Per compilare l'edizione in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Building the Windows Communication Foundation Samples.
Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.