Megosztás:


WS kettős http

A DualHttp példa bemutatja, hogyan konfigurálhatja a WSDualHttpBinding kötést. Ez a minta egy ügyfélkonzolprogramból (.exe) és az Internet Information Services (IIS) által üzemeltetett szolgáltatáskódtárból (.dll) áll. A szolgáltatás kétoldalas szerződést valósít meg. A szerződést az ICalculatorDuplex interfész határozza meg, amely matematikai műveleteket tesz elérhetővé (Hozzáadás, Kivonás, Szorzás és Osztás). Ebben a mintában az ICalculatorDuplex interfész lehetővé teszi az ügyfél számára a matematikai műveletek végrehajtását, és kiszámítja a munkameneten futó eredményt. A szolgáltatás egymástól függetlenül eredményeket ad vissza a ICalculatorDuplexCallback felületen. A kétoldalas szerződések munkamenetet igényelnek, mert létre kell hozni egy környezetet az ügyfél és a szolgáltatás között küldött üzenetek halmazának korrelációja érdekében. A kötés támogatja a WSDualHttpBinding kétoldalas kommunikációt.

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.

Szolgáltatásvégpont WSDualHttpBindingkonfigurálásához adja meg a kötést a végpontkonfigurációban az ábrán látható módon.

<endpoint address=""
         binding="wsDualHttpBinding"
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />

Az ügyfélen konfigurálnia kell egy címet, amellyel a kiszolgáló csatlakozhat az ügyfélhez az alábbi mintakonfigurációban látható módon.

<system.serviceModel>
  <client>
    <endpoint address=
         "http://localhost/servicemodelsamples/service.svc"
         binding="wsDualHttpBinding"
         bindingConfiguration="Binding1"
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
  </client>

  <bindings>
    <!-- Configure a WSDualHttpBinding that supports duplex -->
    <!-- communication. -->
    <wsDualHttpBinding>
      <binding name="Binding1"
               clientBaseAddress="http://localhost:8000/myClient/"
               useDefaultWebProxy="true"
               bypassProxyOnLocal="false">
      </binding>
    </wsDualHttpBinding>
  </bindings>
</system.serviceModel>

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.

Press <ENTER> to terminate client once the output is displayed.

Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)

A minta futtatásakor az ügyfélnek visszaadott üzenetek megjelennek a szolgáltatásból küldött visszahívási felületen. Minden köztes eredmény megjelenik, amelyet az összes művelet befejezése után a teljes egyenlet követ. Nyomja le az ENTER billentyűt az ügyfél leállításához.

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.

    Fontos

    Ha az ügyfelet gépközi konfigurációban futtatja, mindenképpen cserélje le a localhostot az addressügyfélelem< végpontjának><> attribútumában és a clientBaseAddresswsDualHttpBinding< elem kötési elemének> attribútumában a megfelelő gép nevére, az ábrán látható módon:<>

    <client>
        <endpoint name = ""
          address=
         "http://service_machine_name/servicemodelsamples/service.svc"
        />
    </client>
    ...
    <wsDualHttpBinding>
        <binding name="DuplexBinding" clientBaseAddress=
            "http://client_machine_name:8000/myClient/">
        </binding>
    </wsDualHttpBinding>