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
Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi pada Menjalankan Sampel WCF.