Bagikan melalui


Sesi Andal Pengikatan Khusus

Contoh ReliableSession menunjukkan cara mengonfigurasi ikatan khusus dengan berbagai elemen transportasi dan pengkodean pesan, terutama untuk memungkinkan sesi yang andal. Pengikatan kustom didefinisikan oleh daftar elemen pengikatan diskrit yang diurutkan.

Detail Sampel

Sesi andal menyediakan fitur untuk pengiriman pesan yang andal dan sesi. Pesan yang andal mengulangi komunikasi saat terjadi kegagalan dan memungkinkan penentuan jaminan pengiriman, seperti urutan kedatangan pesan. Sesi mempertahankan status untuk klien di antara panggilan. Sampel menerapkan sesi-sesi untuk mempertahankan status klien dan menentukan jaminan pengiriman sesuai urutan. Sampel didasarkan pada Memulai yang mengimplementasikan layanan kalkulator. Fitur sesi yang andal diaktifkan dan dikonfigurasi dalam file konfigurasi aplikasi untuk klien dan layanan.

Nota

Prosedur penyusunan dan instruksi build untuk sampel ini terletak di akhir topik ini.

Urutan elemen pengikatan penting dalam menentukan pengikatan kustom, karena masing-masing mewakili lapisan dalam tumpukan saluran (lihat Pengikatan Kustom).

Konfigurasi layanan untuk sampel didefinisikan seperti yang ditunjukkan dalam contoh kode berikut.

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

Saat berjalan dalam skenario lintas komputer, Anda harus mengubah alamat titik akhir klien untuk mencerminkan nama host layanan.

Saat Anda menjalankan sampel, permintaan dan respons operasi ditampilkan di jendela konsol klien. Tekan ENTER di jendela klien untuk mematikan klien.

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.

Untuk menyiapkan, mengompilasi, dan menjalankan sampel

  1. Instal ASP.NET 4.0 menggunakan perintah berikut:

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.

  3. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.

  4. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.

    Penting

    Saat menjalankan klien dalam konfigurasi lintas komputer, pastikan untuk mengganti "localhost" di address atribut <endpoint> dan clientBaseAddress atribut <compositeDuplex> dengan nama komputer yang sesuai, seperti yang ditunjukkan dalam contoh berikut.

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