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 WMIProvider menunjukkan cara mengumpulkan data dari layanan Windows Communication Foundation (WCF) saat runtime dengan menggunakan penyedia Windows Management Instrumentation (WMI) yang dibangun ke dalam WCF. Selain itu, sampel ini menunjukkan cara menambahkan objek WMI yang ditentukan pengguna ke layanan. Sampel mengaktifkan penyedia WMI untuk Memulai dan menunjukkan cara mengumpulkan data dari layanan saat ICalculator runtime.
WMI adalah implementasi Microsoft dari standar Web-Based Enterprise Management (WBEM). Untuk informasi selengkapnya tentang WMI SDK, lihat Instrumentasi Manajemen Windows. WBEM adalah standar industri untuk bagaimana aplikasi mengekspos instrumentasi manajemen ke alat manajemen eksternal.
WCF mengimplementasikan penyedia WMI, suatu komponen yang mengekspos instrumentasi pada saat runtime melalui sebuah antarmuka yang kompatibel dengan WBEM. Alat manajemen dapat terhubung ke layanan melalui antarmuka saat runtime. WCF mengekspos atribut layanan seperti alamat, pengikatan, perilaku, dan pendengar.
Penyedia WMI bawaan diaktifkan dalam file konfigurasi aplikasi. Ini dilakukan melalui wmiProviderEnabled atribut <diagnostik> di bagian <system.serviceModel> , seperti yang ditunjukkan dalam konfigurasi sampel berikut:
<system.serviceModel>
...
<diagnostics wmiProviderEnabled="true" />
...
</system.serviceModel>
Entri konfigurasi ini mengekspos antarmuka WMI. Aplikasi manajemen sekarang dapat terhubung melalui antarmuka ini dan mengakses instrumentasi manajemen aplikasi.
Objek WMI Kustom
Menambahkan objek WMI ke layanan memungkinkan untuk mengungkapkan informasi yang ditentukan pengguna bersama dengan informasi penyedia WMI bawaan. Ini dicapai dengan menerbitkan skema layanan ke WMI dengan menggunakan aplikasi Installutil.exe. Instruksi untuk mencapai hal ini, bersama dengan detail lebih lanjut dapat ditemukan dalam instruksi penyiapan di akhir topik.
Mengakses Informasi WMI
Data WMI dapat diakses dengan berbagai cara. Microsoft menyediakan API WMI untuk skrip, aplikasi Visual Basic, aplikasi C++, dan .NET Framework. Untuk informasi selengkapnya, lihat Menggunakan WMI.
Sampel ini menggunakan dua skrip Java: satu untuk menghitung layanan yang berjalan di komputer bersama dengan beberapa propertinya dan yang kedua untuk melihat data WMI yang ditentukan pengguna. Skrip membuka koneksi ke penyedia WMI, mengurai data, dan menampilkan data yang dikumpulkan.
Mulai contoh untuk membuat instance layanan WCF yang aktif. Saat layanan berjalan, jalankan setiap skrip Java dengan menggunakan perintah berikut pada prompt perintah:
cscript EnumerateServices.js
Skrip mengakses instrumentasi yang terkandung dalam layanan dan menghasilkan output berikut:
Microsoft (R) Windows Script Host Version 5.6
Copyright © Microsoft Corporation 1996-2001. All rights reserved.
1 service(s) found.
|-PID: 5776
|-DistinguishedName: CalculatorService@http://localhost/ServiceModelSamples/service.svc
|-Endpoints: 1 endpoints
|-CalculatorService.ICalculator@http://localhost/ServiceModelSamples/service.svc
|-Address: http://localhost/ServiceModelSamples/service.svc
|-CounterInstanceName:
|-AddressHeaders: 0
|-ContractType: Contract.Name='ICalculator'
|-BindingElements: 4 bindings
|-BindingElements[0]
|-Type: TransactionFlowBindingElement
|-BindingElements[1]
|-Type: SymmetricSecurityBindingElement
|-BindingElements[2]
|-Type: TextMessageEncodingBindingElement
|-MaxReadPoolSize: 64
|-MaxWritePoolSize: 16
|-BindingElements[3]
|-Type: HttpTransportBindingElement
|-ManualAddressing: false
|-MaxBufferSize: 65536
|-AllowCookies: false
|-AuthenticationScheme: Anonymous
|-BypassProxyOnLocal: false
|-HostNameComparisonMode: StrongWildcard
|-ProxyAddress: null
|-ProxyAuthenticationScheme: Anonymous
|-Realm:
|-TransferMode: Buffered
|-UseDefaultWebProxy: true
|-Behaviors: 5 behaviors
|-Behavior[0]
|-Type: ServiceBehaviorAttribute
|-AddressFilterMode: Exact
|-AutomaticSessionShutdown: true
|-ConcurrencyMode: Single
|-IncludeExceptionDetailInFaults: false
|-InstanceContextMode: PerSession
|-TransactionIsolationLevel: Unspecified
|-TransactionTimeout: null
|-ValidateMustUnderstand: true
|-Behavior[1]
|-Type: AspNetCompatibilityRequirementsAttribute
|-Behavior[2]
|-Type: ServiceDebugBehavior
|-Behavior[3]
|-Type: ServiceAuthorizationBehavior
|-Behavior[4]
|-Type: Behavior
Selanjutnya, jalankan Java Script kedua untuk menampilkan data WMI yang ditentukan pengguna:
cscript EnumerateCustomObjects.js
Skrip mengakses instrumentasi yang ditentukan pengguna yang terkandung dalam layanan dan menghasilkan output berikut:
1 WMIObject(s) found.
|-PID: 30285bfd-9d66-4c4e-9be2-310499c5cef5
|-InstanceId: 3839
|-WMIInfo: User Defined WMI Information.
Output menunjukkan bahwa ada satu layanan yang berjalan di komputer. Layanan ini menyediakan satu titik akhir yang mengimplementasikan kontrak ICalculator. Pengaturan perilaku dan pengikatan yang diimplementasikan oleh titik akhir tercantum sebagai rangkaian elemen individual dari lapisan pesan.
WMI tidak terbatas pada mengekspos instrumentasi manajemen infrastruktur WCF. Aplikasi dapat mengekspos item data khusus domainnya sendiri melalui mekanisme yang sama. WMI adalah mekanisme terpadu untuk inspeksi dan kontrol layanan Web.
Untuk menyiapkan, mengompilasi, dan menjalankan sampel
Pastikan Anda telah melakukan Prosedur PenyiapanOne-Time untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.
Terbitkan skema layanan ke WMI dengan menjalankan InstallUtil.exe (lokasi default untuk InstallUtil.exe adalah "%WINDIR%\Microsoft.NET\Framework\v4.0.30319") pada file service.dll di direktori hosting. Langkah ini hanya perlu dijalankan ketika perubahan telah dilakukan pada file service.dll.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi dalam Menjalankan Sampel Windows Communication Foundation.
Nota
Jika Anda menginstal WCF setelah menginstal ASP.NET, Anda mungkin perlu menjalankan "%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe " -r -x untuk memberikan izin akun ASPNET untuk menerbitkan objek WMI.
Lihat data dari sampel yang muncul melalui WMI dengan menggunakan perintah:
cscript EnumerateServices.jsataucscript EnumerateCustomObjects.js.