Bagikan melalui


Beberapa Kontrak

Sampel MultipleContracts menunjukkan cara mengimplementasikan lebih dari satu kontrak pada layanan dan cara mengonfigurasi titik akhir untuk berkomunikasi dengan masing-masing kontrak yang diimplementasikan. Sampel ini berdasarkan Memulai. Layanan telah dimodifikasi untuk menentukan dua kontrak, kontrak ICalculator dan kontrak ICalculatorSession.

Catatan

Prosedur penyiapan dan petunjuk pembuatan untuk sampel ini terdapat di akhir topik ini.

Kelas layanan mengimplementasikan 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. Titik akhir ICalculator diekspos di alamat dasar menggunakan basicHttpBinding. Titik akhir ICalculatorSession diekspos di alamat dasar/sesi 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 ICalculator asli dan kontrak ICalculatorSession baru. Konfigurasi dan kode klien telah dimodifikasi untuk berkomunikasi dengan setiap kontrak di titik akhir layanan yang sesuai.

Klien adalah aplikasi konsol Windows (.exe). Layanan ini dihosting oleh Layanan Informasi Internet (IIS).

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

Untuk menyiapkan, membangun, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.

  2. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.

  3. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi pada Menjalankan Sampel WCF.