Aracılığıyla paylaş


Özel Bağlama Güvenilir Oturum

ReliableSession örneği, özellikle güvenilir oturumları etkinleştirmek için çeşitli aktarım ve ileti kodlama öğeleriyle özel bağlama yapılandırmayı gösterir. Özel bağlama, ayrık bağlama öğelerinin sıralı bir listesiyle tanımlanır.

Örnek Ayrıntılar

Güvenilir oturumlar, güvenilir mesajlaşma ve oturumlar için özellikler sağlar. Güvenilir mesajlaşma, hata durumunda iletişimi yeniden denenir ve iletilerin sırayla gelmesi gibi teslim güvencelerinin belirtilmesine olanak tanır. Oturumlar, çağrılar arasındaki istemciler için durumu korur. Örnek, istemci durumunu korumak için oturumlar uygular ve sıralı teslim güvencelerini belirtir. Örnek, bir hesap makinesi hizmeti uygulayan Başlarken'i temel alır. Güvenilir oturum özellikleri, istemci ve hizmet için uygulama yapılandırma dosyalarında etkinleştirilir ve yapılandırılır.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda bulunur.

Her biri kanal yığınındaki bir katmanı temsil ettiğinden bağlama öğelerinin sıralanması özel bağlama tanımlamada önemlidir (bkz . Özel Bağlamalar).

Örneğin hizmet yapılandırması aşağıdaki kod örneğinde gösterildiği gibi tanımlanır.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service
          name="Microsoft.ServiceModel.Samples.CalculatorService"
          behaviorConfiguration="CalculatorServiceBehavior">
        <!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc  -->
        <!-- specify customBinding binding and a binding configuration to use -->
        <endpoint address=""
                  binding="customBinding"
                  bindingConfiguration="Binding1"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- The mex endpoint is exposed at http://localhost/servicemodelsamples/service.svc/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>

    <!-- custom binding configuration - configures HTTP transport, reliable sessions -->
    <bindings>
      <customBinding>
        <binding name="Binding1">
          <reliableSession />
          <security authenticationMode="SecureConversation"
                     requireSecurityContextCancellation="true">
          </security>
          <compositeDuplex />
          <oneWay />
          <textMessageEncoding messageVersion="Soap12WSAddressing10" writeEncoding="utf-8" />
          <httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false"
                        hostNameComparisonMode="StrongWildcard"
                        proxyAuthenticationScheme="Anonymous" realm=""
                        useDefaultWebProxy="true" />
        </binding>
      </customBinding>
    </bindings>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>

Makineler arası bir senaryoda çalışırken, istemcinin uç nokta adresini hizmetin ana bilgisayar adını yansıtacak şekilde değiştirmeniz gerekir.

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. İstemciyi kapatmak için istemci penceresinde ENTER tuşuna basın.

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.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Aşağıdaki komutu kullanarak ASP.NET 4.0'ı yükleyin:

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  3. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.

  4. Örneği tek veya makineler arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.

    Önemli

    İstemciyi makineler arası bir yapılandırmada çalıştırırken, aşağıdaki örnekte gösterildiği gibi hem uç nokta> öğesinin <özniteliğinde hem clientBaseAddress de address compositeDuplex> özniteliğinde <"localhost" yerine uygun makinenin adını kullandığınızdan emin olun.

    <endpoint name = ""
    address="http://service_machine_name/servicemodelsamples/service.svc" />
    <compositeDuplex clientBaseAddress="http://client_machine_name:8000/myClient/" />