Bagikan melalui


Cara: Membuat Titik Akhir Layanan di Konfigurasi

Titik akhir memberi klien akses ke fungsionalitas yang ditawarkan layanan Windows Communication Foundation (WCF). Anda dapat menentukan satu atau beberapa titik akhir untuk layanan dengan menggunakan kombinasi alamat titik akhir relatif dan absolut, atau jika Anda tidak menentukan titik akhir layanan apa pun, runtime menyediakan beberapa secara default untuk Anda. Topik ini menunjukkan cara menambahkan titik akhir menggunakan file konfigurasi yang berisi alamat relatif dan absolut.

Contoh 1

Konfigurasi layanan berikut menentukan alamat dasar dan lima titik akhir.

<configuration>

  <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
  </appSettings>

  <system.serviceModel>
    <services>
    <!-- This section is optional with the default configuration introduced in .NET Framework 4. -->
      <service name="Microsoft.ServiceModel.Samples.CalculatorService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
          </baseAddresses>
        </host>
        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="/test"
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="http://localhost:8001/hello/servicemodelsamples"
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
                  binding="netTcpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is another relative address exposed at
             http://localhost:8000/ServiceModelSamples/service/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>

Contoh 2

Alamat dasar ditentukan menggunakan elemen add, pada service/host/baseAddresses, seperti yang ditunjukkan dalam sampel berikut.

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

Contoh 3

Definisi titik akhir pertama yang ditunjukkan dalam contoh berikut menentukan alamat relatif, yang berarti alamat titik akhir adalah kombinasi dari alamat dasar dan alamat relatif yang mengikuti aturan komposisi Pengidentifikasi Sumber Daya Seragam (URI). Alamat relatif kosong (""), sehingga alamat titik akhir sama dengan alamat dasar. Alamat titik akhir aktualnya adalah http://localhost:8000/servicemodelsamples/service.

<endpoint address=""
    binding="wsHttpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Contoh 4

Definisi titik akhir kedua juga menentukan alamat relatif, seperti yang ditunjukkan pada contoh konfigurasi berikut. Alamat relatif, "uji", ditambahkan ke alamat dasar. Alamat titik akhir aktualnya adalah http://localhost:8000/servicemodelsamples/service/test.

<endpoint address="/test"
    binding="wsHttpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Contoh 5

Definisi titik akhir ketiga menentukan alamat absolut, seperti yang ditunjukkan dalam contoh konfigurasi berikut. Alamat dasar tidak memainkan peran dalam alamat. Alamat titik akhir aktualnya adalah http://localhost:8001/hello/servicemodelsamples.

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

Contoh 6

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

<endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
    binding="netTcpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Contoh 7

Untuk menggunakan titik akhir default yang disediakan oleh runtime bahasa umum, jangan tentukan titik akhir layanan apa pun dalam kode atau file konfigurasi. Dalam contoh ini, runtime bahasa umum membuat titik akhir default saat layanan dibuka. Untuk informasi selengkapnya tentang titik akhir, pengikatan, dan perilaku default, lihat Konfigurasi Sederhana dan Konfigurasi Sederhana untuk Layanan WCF.

<configuration>

  <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
  </appSettings>

  <system.serviceModel>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>