Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel WindowsService menunjukkan layanan Windows Communication Foundation (WCF) yang dihosting di Layanan Windows terkelola. Layanan Windows dikontrol menggunakan applet Layanan di Panel Kontrol dan dapat dikonfigurasi untuk memulai secara otomatis setelah reboot sistem. Sampel terdiri dari program klien dan program Layanan Windows. Layanan ini diimplementasikan sebagai program .exe dan berisi kode hostingnya sendiri. Di lingkungan hosting lain, seperti Windows Process Activation Services (WAS) atau Internet Information Services (IIS), Anda tidak perlu menulis kode hosting.
Nota
Prosedur penyusunan dan instruksi build untuk sampel ini terletak di akhir topik ini.
Setelah membangun layanan ini, layanan harus diinstal dengan utilitas Installutil.exe seperti Layanan Windows lainnya. Jika Anda akan membuat perubahan pada layanan, Anda harus terlebih dahulu menghapus instalannya dengan installutil /u
. File Setup.bat dan Cleanup.bat yang disertakan dalam sampel ini adalah perintah untuk menginstal dan memulai Layanan Windows, dan untuk mematikan dan menghapus instalan Layanan Windows. Layanan WCF hanya dapat merespons klien jika Layanan Windows berjalan. Jika Anda menghentikan Layanan Windows dengan menggunakan applet Layanan dari Panel Kontrol dan menjalankan klien, EndpointNotFoundException pengecualian terjadi ketika klien mencoba mengakses layanan. Jika Anda memulai ulang Layanan Windows dan menjalankan ulang klien, komunikasi berhasil.
Kode layanan mencakup kelas penginstal, kelas implementasi layanan WCF yang mengimplementasikan kontrak ICalculator, dan kelas Layanan Windows yang bertindak sebagai host run-time. Kelas penginstal, yang mewarisi dari Installer, memungkinkan program diinstal sebagai layanan NT oleh alat Installutil.exe. Kelas implementasi layanan, WcfCalculatorService
, adalah layanan WCF yang menerapkan kontrak layanan dasar. Layanan WCF ini dihosting di dalam kelas Layanan Windows yang disebut WindowsCalculatorService
. Untuk memenuhi syarat sebagai Layanan Windows, kelas mewarisi dari ServiceBase dan mengimplementasikan metode OnStart(String[]) dan OnStop(). Di OnStart(String[]), objek ServiceHost dibuat untuk jenis WcfCalculatorService
dan kemudian dibuka. Dalam OnStop(), ServiceHost ditutup dengan memanggil metode Close(TimeSpan) dari objek ServiceHost. Alamat dasar host dikonfigurasi menggunakan <elemen add> , yang merupakan turunan dari <baseAddresses>, yang merupakan anak dari <elemen host> , yang merupakan turunan dari <elemen layanan> .
Titik akhir yang ditentukan menggunakan alamat dasar dan <wsHttpBinding>. Sampel berikut menunjukkan konfigurasi alamat dasar serta titik akhir yang mengekspos CalculatorService.
<services>
<service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- This endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
</services>
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
Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.
Setelah solusi dibuat, jalankan Setup.bat dari prompt perintah Visual Studio yang ditingkatkan untuk menginstal layanan Windows menggunakan alat Installutil.exe. Layanan akan muncul di menu Layanan.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi dalam Menjalankan Sampel Windows Communication Foundation.