Bagikan melalui


Penyedia WMI

Sampel WMIProvider menunjukkan cara mengumpulkan data dari layanan Windows Communication Foundation (WCF) pada durasi 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 pada ICalculator durasi.

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, komponen yang mengekspos instrumentasi pada durasi melalui antarmuka yang kompatibel dengan WBEM. Alat manajemen dapat terhubung ke layanan melalui antarmuka pada durasi. 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 dapat disusun dalam 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 sampel untuk membuat instans layanan WCF yang sedang berjalan. 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 mengekspos satu titik akhir yang mengimplementasikan kontrak ICalculator. Pengaturan perilaku dan pengikatan yang diimplementasikan oleh titik akhir terdaftar sebagai jumlah elemen individual dari tumpukan olahpesan.

WMI tidak terbatas pada mengekspos instrumentasi manajemen infrastruktur WCF. Aplikasi ini dapat mengekspos item data khusus domainnya sendiri melalui mekanisme yang sama. WMI adalah mekanisme terpadu untuk inspeksi dan kontrol layanan Web.

Untuk menyiapkan, membangun, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk WCF.

  2. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.

  3. 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.

  4. Untuk menjalankan sampel dalam konfigurasi tunggal atau lintas komputer, ikuti petunjuk di Menjalankan Sampel Windows Communication Foundation.

    Catatan

    Jika Anda memasang WCF setelah memasang 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.

  5. Lihat data dari sampel yang muncul melalui WMI dengan menggunakan perintah: cscript EnumerateServices.js atau cscript EnumerateCustomObjects.js.

Lihat juga