Bagikan melalui


Layanan hosting

Agar aktif, layanan harus dihosting dalam lingkungan runtime yang membuatnya dan mengontrol konteks dan masa pakainya. Layanan Windows Communication Foundation (WCF) dirancang untuk berjalan dalam proses Windows apa pun yang mendukung kode terkelola.

WCF menyediakan model pemrograman terpadu untuk membangun aplikasi berorientasi layanan. Model pemrograman ini tetap konsisten dan independen dari lingkungan runtime tempat layanan disebarkan. Dalam praktiknya, ini berarti bahwa kode untuk layanan Anda terlihat jauh sama apa pun opsi hostingnya.

Opsi hosting ini berkisar dari berjalan di dalam aplikasi konsol hingga lingkungan server seperti layanan Windows yang berjalan dalam proses pekerja yang dikelola oleh Internet Information Services (IIS) atau oleh Windows Process Activation Service (WAS). Pengembang memilih lingkungan hosting yang memenuhi persyaratan penyebaran layanan. Persyaratan ini mungkin berasal dari platform tempat aplikasi disebarkan, transportasi tempat aplikasi harus mengirim dan menerima pesan, atau pada jenis daur ulang proses dan manajemen proses lain yang diperlukan untuk memastikan ketersediaan yang memadai, atau pada beberapa persyaratan manajemen atau keandalan lainnya. Bagian berikutnya menyediakan informasi dan panduan tentang opsi hosting.

Pilihan hosting

Self-Host dalam Aplikasi Terkelola

Layanan WCF dapat dihosting di aplikasi terkelola apa pun. Ini adalah opsi yang paling fleksibel karena membutuhkan infrastruktur paling sedikit untuk disebarkan. Anda menyematkan kode untuk layanan di dalam kode aplikasi terkelola lalu membuat dan membuka instans ServiceHost untuk membuat layanan tersedia. Untuk informasi selengkapnya, lihat Cara: Menghosting Layanan WCF di Aplikasi Terkelola.

Opsi ini memungkinkan dua skenario umum: Layanan WCF yang berjalan di dalam aplikasi konsol dan aplikasi klien yang kaya seperti yang didasarkan pada Windows Presentation Foundation (WPF) atau Windows Forms (WinForms). Hosting layanan WCF di dalam aplikasi konsol biasanya berguna selama fase pengembangan aplikasi. Ini membuat mereka mudah untuk didiagnosis, mudah untuk mendapatkan informasi pelacakan untuk mengetahui apa yang terjadi di dalam aplikasi, dan mudah untuk dipindahkan dengan menyalinnya ke lokasi baru. Opsi hosting ini juga memudahkan aplikasi klien yang kaya, seperti aplikasi WPF dan WinForms, untuk berkomunikasi dengan dunia luar. Misalnya, klien kolaborasi peer-to-peer yang menggunakan WPF untuk antarmuka penggunanya dan juga menghosting layanan WCF yang memungkinkan klien lain untuk terhubung ke dalamnya dan berbagi informasi.

Layanan Windows Terkelola

Opsi hosting ini terdiri dari mendaftarkan domain aplikasi (AppDomain) yang menghosting layanan WCF sebagai Layanan Windows terkelola (sebelumnya dikenal sebagai layanan NT) sehingga masa pakai proses layanan dikendalikan oleh manajer kontrol layanan (SCM) untuk layanan Windows. Seperti opsi hosting mandiri, jenis lingkungan hosting ini mengharuskan beberapa kode hosting ditulis sebagai bagian dari aplikasi. Layanan ini diimplementasikan baik sebagai Layanan Windows maupun sebagai layanan WCF dengan cara mewarisinya dari kelas ServiceBase serta dari antarmuka kontrak layanan WCF. ServiceHost kemudian dibuat dan dibuka dalam metode yang ditimpakan OnStart(String[]) dan ditutup dalam metode yang ditimpakan OnStop(). Sebuah kelas penginstal yang mewarisi dari Installer juga harus diimplementasikan agar program dapat diinstal sebagai Layanan Windows oleh alat Installutil.exe. Untuk informasi selengkapnya, lihat Cara: Menghosting Layanan WCF di Layanan Windows Terkelola. Skenario yang diaktifkan oleh opsi hosting Layanan Windows terkelola adalah layanan WCF berdurasi panjang yang dihosting di luar IIS dalam lingkungan aman yang tidak dipicu oleh pesan. Masa pakai layanan dikontrol sebagai gantinya oleh sistem operasi. Opsi hosting ini tersedia di semua versi Windows.

Layanan Informasi Internet (IIS)

Opsi hosting IIS terintegrasi dengan ASP.NET dan menggunakan fitur yang ditawarkan teknologi ini, seperti daur ulang proses, penonaktifan diam, pemantauan kesehatan proses, dan aktivasi berbasis pesan. Pada sistem operasi Windows XP dan Windows Server 2003, ini adalah solusi pilihan untuk menghosting aplikasi layanan Web yang harus sangat tersedia dan sangat dapat diskalakan. IIS juga menawarkan pengelolaan terintegrasi yang diharapkan pelanggan dari produk server kelas perusahaan. Opsi hosting ini mengharuskan IIS dikonfigurasi dengan benar, tetapi tidak mengharuskan kode hosting ditulis sebagai bagian dari aplikasi. Untuk informasi selengkapnya tentang cara mengonfigurasi hosting IIS untuk layanan WCF, lihat Cara: Menghosting Layanan WCF di IIS.

Layanan yang dihosting IIS hanya dapat menggunakan transportasi HTTP. Implementasinya di IIS 5.1 telah memperkenalkan beberapa batasan di Windows XP. Aktivasi berbasis pesan yang disediakan untuk layanan WCF oleh IIS 5.1 pada Windows XP memblokir layanan WCF lain yang dihost sendiri di komputer yang sama agar tidak menggunakan port 80 untuk berkomunikasi. Layanan WCF dapat berjalan dalam Proses AppDomain/Kumpulan Aplikasi/Pekerja yang sama dengan aplikasi lain saat dihosting oleh IIS 6.0 di Windows Server 2003. Tetapi karena WCF dan IIS 6.0 keduanya menggunakan tumpukan HTTP mode kernel (HTTP.sys), IIS 6.0 dapat berbagi port 80 dengan layanan WCF lain yang dihost sendiri yang berjalan pada komputer yang sama, tidak seperti IIS 5.1.

Layanan Aktivasi Proses Windows (WAS)

Windows Process Activation Service (WAS) adalah mekanisme aktivasi proses baru untuk Windows Server 2008 yang juga tersedia di Windows Vista. Ini mempertahankan model proses IIS 6.0 yang akrab (kumpulan aplikasi dan aktivasi proses berbasis pesan) dan fitur hosting (seperti perlindungan kegagalan cepat, pemantauan kesehatan, dan daur ulang), tetapi menghapus dependensi pada HTTP dari arsitektur aktivasi. IIS 7.0 menggunakan WAS untuk menyelesaikan aktivasi berbasis pesan melalui HTTP. Komponen WCF tambahan juga terhubung ke WAS untuk menyediakan aktivasi berbasis pesan melalui protokol lain yang didukung WCF, seperti TCP, MSMQ, dan pipa bernama. Ini memungkinkan aplikasi yang menggunakan protokol komunikasi untuk menggunakan fitur IIS seperti daur ulang proses, perlindungan kegagalan yang cepat, dan sistem konfigurasi umum yang hanya tersedia untuk aplikasi berbasis HTTP.

Opsi hosting ini mengharuskan WAS dikonfigurasi dengan benar, tetapi tidak mengharuskan Anda menulis kode hosting apa pun sebagai bagian dari aplikasi. Untuk informasi selengkapnya tentang cara mengonfigurasi hosting WAS, lihat Cara: Menghosting Layanan WCF di WAS.

Pilih Lingkungan Hosting

Tabel berikut ini meringkas beberapa manfaat dan skenario utama yang terkait dengan setiap opsi hosting.

Lingkungan Hosting Skenario Umum Manfaat dan Batasan Utama
Aplikasi Terkelola ("Dihost sendiri") - Aplikasi konsol yang digunakan selama pengembangan.
- Aplikasi klien WinForm dan WPF yang canggih untuk mengakses layanan.
-Flexibel.
- Mudah disebarkan.
- Bukan solusi perusahaan untuk layanan.
Layanan Windows (sebelumnya dikenal sebagai layanan NT) - Layanan WCF jangka panjang yang dihosting di luar IIS. - Masa hidup proses layanan dikendalikan oleh sistem operasi, bukan diaktifkan oleh pesan.
- Didukung oleh semua versi Windows.
- Lingkungan yang aman.
IIS 5.1, IIS 6.0 - Menjalankan layanan WCF secara berdampingan dengan konten ASP.NET di Internet menggunakan protokol HTTP. - Proses daur ulang.
- Pemadaman otomatis saat tidak aktif.
- Pemantauan kesehatan proses.
- Aktivasi berbasis pesan.
- Hanya HTTP.
Layanan Aktivasi Proses Windows (WAS) - Menjalankan layanan WCF tanpa menginstal IIS di Internet menggunakan berbagai protokol transportasi. - IIS tidak diperlukan.
- Proses daur ulang.
- Pemadaman otomatis saat tidak aktif.
- Pemantauan kesehatan proses.
- Aktivasi berbasis pesan.
- Bekerja dengan HTTP, TCP, pipa bernama, dan MSMQ.
IIS 7.0 - Menjalankan layanan WCF dengan konten ASP.NET.
- Menjalankan layanan WCF di Internet menggunakan berbagai protokol transportasi.
- MANFAAT WAS.
- Terintegrasi dengan konten ASP.NET dan IIS.

Pilihan lingkungan hosting tergantung pada versi Windows tempatnya disebarkan, transportasi yang diperlukan untuk mengirim pesan dan jenis proses dan daur ulang domain aplikasi yang diperlukannya. Tabel berikut ini meringkas data yang terkait dengan persyaratan ini.

Lingkungan Hosting Ketersediaan Platform Jenis Transport yang Didukung Proses dan Daur Ulang AppDomain
Aplikasi Terkelola ("Dihost sendiri") Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

net.tcp,

net.pipe,

net.msmq
Tidak.
Layanan Windows (sebelumnya dikenal sebagai layanan NT) Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

net.tcp,

net.pipe,

net.msmq
Tidak.
IIS 5.1 Windows XP HTTP Ya
IIS 6.0 Windows Server 2003 HTTP Ya
Layanan Aktivasi Proses Windows (WAS) Windows Vista, Windows Server 2008 HTTP,

net.tcp,

net.pipe,

net.msmq
Ya

Penting untuk dicatat bahwa menjalankan layanan atau ekstensi apa pun dari host yang tidak tepercaya membahayakan keamanan. Selain itu, ketika membuka ServiceHost di bawah impersonasi, aplikasi harus memastikan bahwa pengguna tidak keluar dari sistem, misalnya dengan menyimpan cache milik pengguna WindowsIdentity.

Lihat juga