Megosztás:


WSHttpBinding

A wsHttp-minta bemutatja, hogyan implementálhat egy tipikus szolgáltatást és egy tipikus ügyfelet a Windows Communication Foundation (WCF) használatával. Ez a minta egy ügyfélkonzolprogramból (client.exe) és az Internet Information Services (IIS) által üzemeltetett szolgáltatástárból áll. A szolgáltatás megvalósít egy szerződést, amely egy kérés-válasz kommunikációs mintát határoz meg. A szerződést az ICalculator interfész határozza meg, amely matematikai műveleteket tesz elérhetővé (hozzáadás, kivonás, szorzás és osztás). Az ügyfél szinkron kéréseket küld egy adott matematikai művelethez, és a szolgáltatás az eredménnyel válaszol. Az ügyféltevékenység látható a konzolablakban.

Megjegyzés:

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

Ez a minta a ICalculator szerződést a <wsHttpBinding> használatával teszi közzé. A kötés konfigurációja ki lett bontva a Web.config fájlban.

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

Az alapelemen binding az maxReceivedMessageSize érték lehetővé teszi a bejövő üzenetek maximális méretének konfigurálását (bájtban). Az hostNameComparisonMode érték lehetővé teszi annak konfigurálását, hogy a gazdagépnév figyelembe legyen-e véve a szolgáltatásnak küldött üzenetek multiplexálásának megszüntetésekor. Az messageEncoding érték lehetővé teszi annak konfigurálását, hogy szöveg- vagy MTOM-kódolást használjon-e az üzenetekhez. Az textEncoding érték lehetővé teszi az üzenetek karakterkódolásának konfigurálását. Az bypassProxyOnLocal érték lehetővé teszi annak konfigurálását, hogy HTTP-proxyt használjon-e a helyi kommunikációhoz. Az transactionFlow érték azt határozza meg, hogy az aktuális tranzakció folyamatban van-e (ha egy művelet konfigurálva van a tranzakciós folyamathoz).

<A reliableSession> elemen az engedélyezett logikai érték konfigurálja, hogy engedélyezve vannak-e a megbízható munkamenetek. Az ordered érték azt határozza meg, hogy az üzenetsorrendezés megmarad-e. Az inactivityTimeout érték azt határozza meg, hogy a munkamenetek mennyi ideig tétlenkedhetnek, mielőtt meghibásodnak.

A <biztonságon> az mode érték konfigurálja, hogy melyik biztonsági módot kell használni. Ebben a példában az üzenetek biztonsága van használatban, ezért van megadva az <üzenet> a <biztonságon> belül.

A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. Nyomja le az ENTER billentyűt az ügyfélablakban az ügyfél leállításához.

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.

A példa beállítása, elkészítése és futtatása

  1. Telepítse a ASP.NET 4.0-t az alábbi paranccsal.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.

  3. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.

  4. Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.