Layanan hosting

Untuk menjadi aktif, layanan harus di-hosting dalam lingkungan run-time yang membuatnya dan mengontrol konteks dan masa pakainya. Layanan Windows Communication Foundation (WCF) dirancang untuk berjalan dalam proses Windows apa pun yang mendukung kode terkendali.

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

Opsi hosting ini berkisar dari menjalankan di dalam aplikasi konsol hingga lingkungan server seperti layanan Windows yang berjalan dalam proses pekerja yang dikelola oleh Layanan Informasi Internet (IIS) atau dengan 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.

Opsi hosting

Self-Host dalam Aplikasi Terkelola

Layanan WCF dapat di-hosting 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: Meng-hosting 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 Formulir Windows (WinForms). Hosting layanan WCF di dalam aplikasi konsol biasanya berguna selama fase pengembangan aplikasi. Hosting ini membuatnya mudah untuk men-debug, mudah untuk mendapatkan informasi pelacakan dari untuk mengetahui apa yang terjadi di dalam aplikasi, dan mudah untuk bergerak 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 meng-hosting 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 meng-hosting 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 sebagai Layanan Windows dan sebagai layanan WCF dengan menyebabkannya mewarisi dari ServiceBase kelas serta dari antarmuka kontrak layanan WCF. ServiceHost kemudian dibuat dan dibuka dalam metode OnStart(String[]) yang ditimpa dan ditutup dalam metode OnStop() yang ditimpa. Kelas alat penginstal Installer yang mewarisi juga harus diimplementasikan untuk memungkinkan program dipasang sebagai Layanan Windows oleh alat Installutil.exe. Untuk informasi selengkapnya, lihat Cara: Meng-hosting Layanan WCF di Layanan Windows Terkelola. Skenario yang diaktifkan oleh opsi hosting layanan Windows terkelola adalah layanan WCF yang berjalan lama yang di-hosting di luar IIS di lingkungan aman yang tidak diaktifkan pesan. Masa pakai layanan dikendalikan sebagai gantinya oleh sistem operasi. Opsi hosting ini tersedia di semua versi Windows.

Internet Information Services (IIS)

Opsi hosting IIS terintegrasi dengan ASP.NET dan menggunakan fitur yang ditawarkan teknologi ini, seperti daur ulang proses, matikan diam, pemantauan kesehatan proses, dan aktivasi berbasis pesan. Pada sistem operasi Windows XP dan Windows Server 2003, ini adalah solusi yang disukai untuk meng-hosting 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: Meng-hosting Layanan WCF di IIS.

Layanan yang di-hosting IIS hanya dapat menggunakan transportasi HTTP. Implementasinya di IIS 5.1 telah memperkenalkan beberapa batasan dalam 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/koleksi Aplikasi/Pekerja yang sama dengan aplikasi lain saat di-hosting 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.

Windows Process Activation Service (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 (koleksi 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 memberikan aktivasi berbasis pesan melalui protokol lain yang didukung WCF, seperti TCP, MSMQ, dan pipa yang dinamai. Ini memungkinkan aplikasi yang menggunakan protokol komunikasi untuk menggunakan fitur IIS seperti daur ulang proses, perlindungan kegagalan 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: Meng-hosting Layanan WCF di WAS.

Pilih Lingkungan Hosting

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

Menghosting Lingkungan Skenario Umum Manfaat dan Batasan Utama
Aplikasi Terkelola ("Dihost sendiri") - Aplikasi konsol yang digunakan selama pengembangan.
- Aplikasi klien WinForm dan WPF yang kaya mengakses layanan.
- Fleksibel.
- Mudah disebarkan.
- Bukan solusi perusahaan untuk layanan.
layanan Windows (sebelumnya dikenal sebagai layanan NT) - Layanan WCF jangka panjang yang di-hosting di luar IIS. - Masa pakai proses layanan yang dikendalikan oleh sistem operasi, bukan diaktifkan pesan.
- Didukung oleh semua versi Windows.
- Lingkungan yang aman.
IIS 5.1, IIS 6.0 - Menjalankan layanan WCF berdampingan dengan konten ASP.NET di Internet menggunakan protokol HTTP. - Proses daur ulang.
- Matikan diam.
- Pemantauan kesehatan proses.
- Aktivasi berbasis pesan.
- HTTP saja.
Windows Process Activation Service (WAS) - Menjalankan layanan WCF tanpa memasang IIS di Internet menggunakan berbagai protokol transportasi. - IIS tidak diperlukan.
- Proses daur ulang.
- Matikan diam.
- Pemantauan kesehatan proses.
- Aktivasi berbasis pesan.
- Bekerja dengan HTTP, TCP, pipa yang dinamai, dan MSMQ.
IIS 7.0 - Menjalankan layanan WCF dengan konten ASP.NET.
- Menjalankan layanan WCF di Internet menggunakan berbagai protokol transportasi.
- WAS manfaat.
- 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.

Menghosting Lingkungan Ketersediaan platform Transportasi 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
No
layanan Windows (sebelumnya dikenal sebagai layanan NT) Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

net.tcp,

net.pipe,

net.msmq
No
IIS 5.1 Windows XP HTTP Ya
IIS 6.0 Windows Server 2003 HTTP Ya
Windows Process Activation Service (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, saat membuka ServiceHost di bawah peniruan identitas, aplikasi harus memastikan bahwa pengguna tidak keluar, misalnya dengan penembolokan WindowsIdentity pengguna.

Lihat juga