Megosztás:


Alapértelmezett NetTcpBinding

Az alapértelmezett minta bemutatja a kötés használatát NetTcpBinding . Ez a minta a számológép szolgáltatást megvalósító Első lépések részen alapul. Ebben a mintában a szolgáltatás saját üzemeltetésű. Az ügyfél és a szolgáltatás egyaránt konzolalkalmazás.

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.

A kötés az ügyfél és a szolgáltatás konfigurációs fájljaiban van megadva. A kötéstípus a bindingvégpontelem< attribútumában van megadva az> alábbi mintakonfigurációban látható módon.

<endpoint address=""
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Az előző minta bemutatja, hogyan konfigurálhat végpontot a netTcpBinding kötés alapértelmezett beállításokkal való használatára. Ha konfigurálni szeretné a netTcpBinding kötést, és módosítani szeretné annak néhány beállítását, meg kell határoznia egy kötéskonfigurációt. A végpontnak név szerint kell hivatkoznia a kötés konfigurációra egy bindingConfiguration attribútummal. Ebben a mintában a kötéskonfiguráció neve el van nevezve Binding1 , és az alábbi mintakonfigurációban látható módon van definiálva.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="Binding1"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="Binding1"
             closeTimeout="00:01:00"
             openTimeout="00:01:00"
             receiveTimeout="00:10:00"
             sendTimeout="00:01:00"
             transactionFlow="false"
             transferMode="Buffered"
             transactionProtocol="OleTransactions"
             hostNameComparisonMode="StrongWildcard"
             listenBacklog="10"
             maxBufferPoolSize="524288"
             maxBufferSize="65536"
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32"
                    maxStringContentLength="8192"
                    maxArrayLength="16384"
                    maxBytesPerRead="4096"
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

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.

    Megjegyzés:

    Mivel a kiszolgáló saját üzemeltetésű, meg kell adnia egy identitást az ügyfél App.config fájljában a minta gépközi konfigurációban való futtatásához.

    <client>
      <endpoint name=""
          address="net.tcp://servername:9000/servicemodelsamples/service"
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator">
            <identity>
              <userPrincipalName value = "user_name@service_domain"/>
            </identity>
      </endpoint>
    </client>