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