Bagikan melalui


Pengikatan Kustom Transportasi dan Pengodean

Sampel Transport menunjukkan cara mengonfigurasi pengikatan kustom dengan berbagai elemen transport dan pengodean pesan. Pengikatan kustom didefinisikan oleh daftar elemen pengikatan diskrit yang diurutkan.

Nota

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

Sampel ini didasarkan pada Self-Host, dan telah dimodifikasi untuk mengkonfigurasi tiga endpoint (titik akhir) guna mendukung protokol HTTP, TCP, dan "NamedPipe" dengan pengikatan kustom. Konfigurasi klien juga dimodifikasi, dan kode klien berubah untuk berkomunikasi dengan masing-masing dari tiga titik akhir.

Sampel menunjukkan cara mengonfigurasi pengikatan kustom yang mendukung pengodean transportasi dan pesan tertentu. Ini dicapai dengan mengonfigurasi transportasi dan pengodean pesan untuk elemen .binding Urutan elemen pengikatan penting dalam menentukan pengikatan kustom, karena masing-masing mewakili lapisan dalam tumpukan saluran (lihat Pengikatan Kustom). Sampel ini mengonfigurasi tiga pengikatan kustom: transportasi HTTP dengan pengodean teks, transportasi TCP dengan pengodean teks, dan transportasi NamedPipe dengan pengodean biner.

Konfigurasi layanan mendefinisikan pengikatan kustom sebagai berikut:

<bindings>
    <customBinding>
        <binding name="HttpBinding" >
            <textMessageEncoding
                messageVersion="Soap12Addressing10"/>
            <httpTransport />
        </binding>
        <binding name="TcpBinding" >
            <textMessageEncoding />
            <tcpTransport />
        </binding>
        <binding name="NamedPipeBinding" >
            <binaryMessageEncoding />
            <namedPipeTransport />
        </binding>
    </customBinding>
</bindings>

Saat Anda menjalankan sampel, permintaan dan respons operasi ditampilkan di jendela layanan dan konsol klien. Klien berkomunikasi dengan masing-masing dari tiga titik akhir, mengakses HTTP pertama, lalu TCP, dan akhirnya NamedPipe. Tekan ENTER di setiap jendela konsol untuk mematikan layanan dan klien.

Pengikatan namedPipeTransport tidak mendukung operasi komputer-ke-mesin. Ini hanya digunakan untuk komunikasi pada komputer yang sama. Oleh karena itu, saat menjalankan sampel dalam skenario lintas komputer, komentari baris berikut dalam file kode klien:

CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()

Nota

Jika Anda menggunakan Svcutil.exe untuk meregenerasi konfigurasi untuk sampel ini, pastikan untuk mengubah nama titik akhir dalam konfigurasi klien agar sesuai dengan kode klien.

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#, C++, atau Visual Basic .NET, ikuti instruksi dalam Membangun Sampel Windows Communication Foundation.

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