Bagikan melalui


Beberapa Kontrak

Sampel MultipleContracts menunjukkan cara menerapkan lebih dari satu kontrak pada layanan dan cara mengonfigurasi titik akhir untuk berkomunikasi dengan masing-masing kontrak yang diterapkan. Sampel ini didasarkan pada Panduan Memulai. Layanan telah dimodifikasi untuk menentukan dua kontrak: kontrak ICalculator dan kontrak ICalculatorSession.

Nota

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

Kelas layanan mengimplementasikan kedua kontrak ICalculator dan ICalculatorSession. Karena salah satu kontrak memerlukan sesi, layanan menggunakan mode instans PerSession untuk mempertahankan status selama masa pakai sesi.

Konfigurasi layanan telah dimodifikasi untuk menentukan dua titik akhir untuk mengekspos setiap kontrak. Endpoint ICalculator tersedia pada alamat dasar melalui basicHttpBinding. Titik ICalculatorSession akhir diekspos pada baseaddress/session menggunakan wsHttpBinding dengan atribut bindingConfiguration yang diatur ke BindingWithSession, seperti yang ditunjukkan dalam konfigurasi sampel berikut.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host:
       http://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       http://localhost/servicemodelsamples/service.svc/session -->
  <endpoint address="session"
            binding="wsHttpBinding"
            bindingConfiguration="BindingWithSession"
           contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
  ...
</service>

Kode klien yang dihasilkan sekarang menyertakan kelas klien untuk kontrak asli ICalculator dan kontrak baru ICalculatorSession . Konfigurasi dan kode klien telah dimodifikasi untuk berkomunikasi dengan setiap kontrak di titik akhir layanan yang sesuai.

Klien adalah aplikasi jendela konsol (.exe). Layanan ini dihosting oleh Internet Information Services (IIS).

Jendela konsol klien menampilkan operasi yang dikirim ke setiap titik akhir, pertama-tama titik akhir dasar, diikuti oleh titik akhir aman.

Untuk menyiapkan, mengompilasi, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.

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

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