Delen via


WSHttpBinding

Het wsHttp-voorbeeld laat zien hoe u een typische service en een typische client implementeert met behulp van WCF (Windows Communication Foundation). Dit voorbeeld bestaat uit een clientconsoleprogramma (client.exe) en een servicebibliotheek die wordt gehost door Internet Information Services (IIS). De service implementeert een contract dat een communicatiepatroon aanvraagantwoord definieert. Het contract wordt gedefinieerd door de ICalculator interface, die wiskundige bewerkingen weergeeft (optellen, aftrekken, vermenigvuldigen en delen). De client doet synchrone aanvragen voor een bepaalde wiskundige bewerking en de service reageert met het resultaat. Clientactiviteit is zichtbaar in het consolevenster.

Notitie

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

In dit voorbeeld wordt het ICalculator contract weergegeven met behulp van de <wsHttpBinding>. De configuratie van deze binding is uitgebreid in het web.config-bestand.

<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>

Op het basiselement binding kunt u met de maxReceivedMessageSize waarde de maximale grootte van een binnenkomend bericht (in bytes) configureren. Met hostNameComparisonMode de waarde kunt u configureren of de hostnaam wordt overwogen bij het ongedaan maken van multiplexing-berichten naar de service. Met de messageEncoding waarde kunt u configureren of u tekst- of MTOM-codering wilt gebruiken voor berichten. Met textEncoding de waarde kunt u de tekencodering voor berichten configureren. Met de bypassProxyOnLocal waarde kunt u configureren of u een HTTP-proxy wilt gebruiken voor lokale communicatie. De transactionFlow waarde configureert of de huidige transactie wordt gestroomd (als een bewerking is geconfigureerd voor transactiestroom).

Op het <element ReliableSession> configureert de ingeschakelde Booleaanse waarde of betrouwbare sessies zijn ingeschakeld. Met de ordered waarde wordt geconfigureerd of de volgorde van berichten behouden blijft. De inactivityTimeout waarde configureert hoe lang een sessie inactief kan zijn voordat er een fout opgetreden wordt.

Op de <beveiliging> configureert de mode waarde welke beveiligingsmodus moet worden gebruikt. In dit voorbeeld wordt de beveiliging van berichten gebruikt. Daarom wordt het <bericht> binnen de< beveiliging> opgegeven.

Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.

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.

Het voorbeeld instellen, compileren en uitvoeren

  1. Installeer ASP.NET 4.0 met de volgende opdracht.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  3. Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.

  4. Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.