Bagikan melalui


Beberapa Titik Akhir

Sampel MultipleEndpoints menunjukkan cara mengonfigurasi beberapa titik akhir pada layanan dan cara berkomunikasi dengan setiap titik akhir dari klien. Sampel ini didasarkan pada Panduan Memulai. Konfigurasi layanan telah dimodifikasi untuk menentukan dua titik akhir yang mendukung ICalculator kontrak, tetapi masing-masing di alamat yang berbeda menggunakan pengikatan yang berbeda. Konfigurasi dan kode klien telah dimodifikasi untuk berkomunikasi dengan kedua titik akhir layanan.

Nota

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

File layanan Web.config telah dimodifikasi untuk menentukan dua titik akhir yang masing-masing mendukung kontrak yang sama ICalculator, tetapi berada pada alamat yang berbeda dengan menggunakan binding yang berbeda. Titik akhir pertama didefinisikan di alamat dasar menggunakan pengikatan basicHttpBinding , yang tidak mengaktifkan keamanan. Titik akhir kedua didefinisikan pada {baseaddress}/secure menggunakan binding wsHttpBinding, yang aman secara default, menggunakan WS-Security dengan autentikasi Windows.

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

Kedua titik akhir juga dikonfigurasi di klien. Titik akhir ini diberi nama sehingga pemanggil dapat meneruskan nama titik akhir yang diinginkan ke konstruktor klien.

<client>
  <!-- Passing "basic" into the constructor of the CalculatorClient
       class selects this endpoint.-->
  <endpoint name="basic"
            address="http://localhost/servicemodelsamples/service.svc"
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- Passing "secure" into the constructor of the CalculatorClient
       class selects this endpoint.-->
  <endpoint name="secure"
            address="http://localhost/servicemodelsamples/service.svc/secure"
            binding="wsHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>

Klien menggunakan kedua titik akhir seperti yang ditunjukkan dalam kode berikut.

static void Main()
{
    // Create a client to the basic endpoint configuration.
    CalculatorClient client = new CalculatorClient("basic");
    Console.WriteLine("Communicate with basic endpoint.");
    // call operations
    DoCalculations(client);

    // Close the client and release resources.
    client.Close();

    // Create a client to the secure endpoint configuration.
    client = new CalculatorClient("secure");
    Console.WriteLine("Communicate with secure endpoint.");
    // Call operations.
    DoCalculations(client);

    // Close the client and release resources.
    client.Close();

    Console.WriteLine();
    Console.WriteLine("Press <ENTER> to terminate client.");
    Console.ReadLine();
}

Saat Anda menjalankan klien, interaksi dengan kedua titik akhir akan terlihat.

Communicate with basic endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Communicate with secure endpoint.
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. 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.