Bagikan melalui


Self-Host

Sampel SelfHost menunjukkan cara menerapkan layanan yang dihost sendiri di aplikasi konsol. Sampel ini didasarkan pada Panduan Memulai. File konfigurasi layanan telah diganti namanya dari Web.config menjadi App.config dan dimodifikasi untuk mengonfigurasi alamat dasar, yang digunakan host. Kode sumber layanan telah dimodifikasi untuk menerapkan fungsi statis Main yang membuat dan membuka host layanan yang menyediakan alamat dasar yang dikonfigurasi. Implementasi layanan telah dimodifikasi untuk menulis output ke konsol untuk setiap operasi. Klien tidak mengalami perubahan, kecuali untuk mengonfigurasi alamat titik akhir layanan yang benar.

Nota

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

Sampel ini mengimplementasikan fungsi utama statis untuk membuat objek ServiceHost dengan tipe CalculatorService tertentu, seperti yang ditunjukkan dalam kode sampel berikut.

// Host the service within this EXE console application.
public static void Main()
{
    // Create a ServiceHost for the CalculatorService type.
    using (ServiceHost serviceHost =
           new ServiceHost(typeof(CalculatorService)))
    {
        // Open the ServiceHost to create listeners
        // and start listening for messages.
        serviceHost.Open();

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();
    }
}

Ketika layanan dihosting di Internet Information Services (IIS) atau Windows Process Activation Service (WAS), alamat dasar layanan disediakan oleh lingkungan hosting. Dalam kasus yang dihost sendiri, Anda harus menentukan alamat dasar sendiri. Ini dilakukan menggunakan elemen add, anak dari <baseAddresses>, anak dari <host>, anak dari <service> seperti yang ditunjukkan dalam konfigurasi sampel berikut.

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

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

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 dalam Menjalankan Sampel Windows Communication Foundation.

Lihat juga