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 berdasarkan Memulai. Konfigurasi layanan telah dimodifikasi untuk menentukan dua titik akhir yang mendukung kontrak ICalculator, tetapi masing-masing di alamat yang berbeda menggunakan pengikatan yang berbeda. Konfigurasi dan kode klien telah dimodifikasi untuk berkomunikasi dengan kedua titik akhir layanan.

Catatan

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

File Web.config layanan telah dimodifikasi untuk menentukan dua titik akhir, masing-masing mendukung kontrak ICalculator yang sama, tetapi pada alamat yang berbeda menggunakan pengikatan yang berbeda. Titik akhir pertama didefinisikan pada alamat dasar menggunakan pengikatan basicHttpBinding, yang tidak mengaktifkan keamanan. Titik akhir kedua didefinisikan pada {baseaddress}/secure menggunakan pengikatan 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 dikonfigurasikan pada 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 ditampilkan.

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, 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.