Bagikan melalui


Pengalamatan

Sampel Pengalamatan menunjukkan berbagai aspek dan fitur alamat titik akhir. Sampel tersebut didasarkan pada Memulai. Dalam sampel ini, layanan ini di-host sendiri. Layanan dan klien adalah aplikasi konsol. Layanan ini menentukan beberapa titik akhir menggunakan kombinasi alamat titik akhir relatif dan absolut.

Catatan

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

File konfigurasi layanan menentukan alamat dasar dan empat titik akhir. Alamat dasar ditentukan menggunakan elemen tambahkan, di bagian service/host/baseAddresses seperti yang ditunjukkan dalam contoh konfigurasi berikut.

<service name="Microsoft.ServiceModel.Samples.CalculatorService"
         behaviorConfiguration="CalculatorServiceBehavior">
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
    </baseAddresses>
  </host>
</service>

Definisi titik akhir pertama yang ditunjukkan dalam contoh konfigurasi berikut menentukan alamat relatif, yang berarti alamat titik akhir adalah kombinasi dari alamat dasar dan alamat relatif mengikuti aturan komposisi URI.

<!-- Empty relative address specified:
     use the base address provided by the host. -->
<!-- The endpoint address is
     http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Dalam hal ini, alamat relatif kosong (""), sehingga alamat titik akhir sama dengan alamat dasar. Alamat titik akhir aktualnya adalah http://localhost:8000/servicemodelsamples/service.

Definisi titik akhir kedua juga menentukan alamat relatif, seperti yang ditunjukkan pada contoh konfigurasi berikut.

<!-- The relative address specified: use the base address -->
<!-- provided by the host + path. The endpoint address is -->
<!-- http://localhost:8000/servicemodelsamples/service/test. -->
<endpoint address="/test"
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Alamat relatif, "uji", ditambahkan ke alamat dasar. Alamat titik akhir aktualnya adalah http://localhost:8000/servicemodelsamples/service/test.

Definisi titik akhir ketiga menentukan alamat absolut, seperti yang ditunjukkan dalam contoh konfigurasi berikut.

<endpoint address="http://localhost:8001/hello/servicemodelsamples"
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Alamat dasar tidak memainkan peran dalam alamat. Alamat titik akhir aktualnya adalah http://localhost:8001/hello/servicemodelsamples.

Alamat titik akhir keempat menentukan alamat absolut dan transportasi yang berbeda—TCP. Alamat dasar tidak memainkan peran dalam alamat. Alamat titik akhir aktualnya adalah net.tcp://localhost:9000/servicemodelsamples/service.

<!-- The absolute address specified, different transport: -->
<!-- use the specified address, and ignore the base address. -->
<!-- The endpoint address is -->
<!-- net.tcp://localhost:9000/servicemodelsamples/service. -->
<endpoint address=
          "net.tcp://localhost:9000/servicemodelsamples/service"
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Klien hanya mengakses salah satu dari empat titik akhir layanan, tetapi keempatnya ditentukan dalam file konfigurasinya. Klien memilih titik akhir saat membuat objek CalculatorProxy. Dengan mengubah nama konfigurasi dari CalculatorEndpoint1 melalui CalculatorEndpoint4, Anda dapat menjalankan setiap titik akhir.

Saat Anda menjalankan sampel, layanan menghitung alamat, nama pengikatan, dan nama kontrak untuk setiap titik akhirnya. Titik akhir pertukaran metadata (MEX) hanyalah titik akhir lain dari perspektif ServiceHost sehingga muncul dalam daftar.

Service endpoints:
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service/test
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8001/hello/servicemodelsamples
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  net.tcp://localhost:9000/servicemodelsamples/service
           binding:  NetTcpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service/mex
           binding:  MetadataExchangeHttpBinding
           contract: IMetadataExchange

The service is ready.
Press <ENTER> to terminate service.

Saat Anda menjalankan klien, permintaan dan respons operasi ditampilkan di jendela konsol layanan dan klien. Tekan ENTER di setiap jendela konsol untuk mematikan layanan dan klien.

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.

    Catatan

    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.