Zprostředkovatel rozhraní WMI

Ukázka WMIProvider ukazuje, jak shromažďovat data ze služeb WCF (Windows Communication Foundation) za běhu pomocí zprostředkovatele WMI (Windows Management Instrumentation), který je integrovaný do WCF. Tato ukázka také ukazuje, jak do služby přidat uživatelem definovaný objekt WMI. Ukázka aktivuje zprostředkovatele rozhraní WMI pro Getting Started a ukazuje, jak shromažďovat data během běhu ze ICalculator služby.

WMI je implementace standardu Web-Based Enterprise Management (WBEM) od Microsoftu. Další informace o sadě WMI SDK naleznete v tématu Windows Management Instrumentation. WBEM je oborový standard pro to, jak aplikace zpřístupňují instrumentaci správy externím nástrojům pro správu.

WCF implementuje zprostředkovatele WMI, komponentu, která zveřejňuje instrumentaci za běhu prostřednictvím rozhraní kompatibilního s WBEM. Nástroje pro správu se můžou připojit ke službám prostřednictvím rozhraní za běhu. WCF zveřejňuje atributy služeb, jako jsou adresy, sídla, chování a posluchače.

Integrovaný zprostředkovatel rozhraní WMI se aktivuje v konfiguračním souboru aplikace. To se provádí prostřednictvím wmiProviderEnabled atributu <diagnostiky> v <části system.serviceModel>, jak je znázorněno v následující ukázkové konfiguraci.

<system.serviceModel>
    ...
    <diagnostics wmiProviderEnabled="true" />
    ...
</system.serviceModel>

Tato položka konfigurace zveřejňuje rozhraní WMI. Aplikace pro správu se teď můžou prostřednictvím tohoto rozhraní připojit a získat přístup k instrumentaci správy aplikace.

Vlastní objekt služby WMI

Přidání objektů rozhraní WMI do služby umožňuje odhalit uživatelem definované informace spolu s integrovanými informacemi zprostředkovatele rozhraní WMI. Toho se dosahuje publikováním schématu služby do rozhraní WMI pomocí aplikace Installutil.exe. Pokyny k tomuto účelu spolu s dalšími podrobnostmi najdete v pokynech k nastavení na konci tématu.

Přístup k informacím o rozhraní WMI

K datům rozhraní WMI je možné přistupovat mnoha různými způsoby. Microsoft poskytuje rozhraní WMI API pro skripty, aplikace jazyka Visual Basic, aplikace jazyka C++ a rozhraní .NET Framework. Další informace naleznete v tématu Použití rozhraní WMI.

Tato ukázka používá dva skripty Java: jeden k vytvoření výčtu služeb spuštěných v počítači spolu s některými jejich vlastnostmi a druhý k zobrazení uživatelem definovaných dat rozhraní WMI. Skript otevře připojení k poskytovateli rozhraní WMI, analyzuje data a zobrazí shromážděná data.

Spusťte ukázku a vytvořte spuštěnou instanci služby WCF. Zatímco je služba spuštěná, spusťte každý skript Java pomocí následujícího příkazu na příkazovém řádku:

cscript EnumerateServices.js

Skript přistupuje k instrumentaci obsažené ve službě a vytvoří následující výstup:

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

Potom spusťte druhý skript Java, který zobrazí uživatelsky definovaná data rozhraní WMI:

cscript EnumerateCustomObjects.js

Skript přistupuje k uživatelsky definované instrumentaci obsažené ve službách a vytvoří následující výstup:

1 WMIObject(s) found.
|-PID:           30285bfd-9d66-4c4e-9be2-310499c5cef5
|-InstanceId:    3839
|-WMIInfo:       User Defined WMI Information.

Výstup ukazuje, že v počítači je spuštěná jedna služba. Služba zveřejňuje jeden koncový bod, který implementuje ICalculator kontrakt. Nastavení chování a vazby implementované koncovým bodem jsou uvedeny jako součet jednotlivých prvků zásobníku zasílání zpráv.

Rozhraní WMI není omezeno na zveřejnění instrumentace správy infrastruktury WCF. Aplikace může prostřednictvím stejného mechanismu zveřejnit vlastní datové položky specifické pro doménu. WMI je jednotný mechanismus kontroly a řízení webové služby.

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli postup nastaveníOne-Time pro ukázkové příklady Windows Communication Foundation.

  2. Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.

  3. Publikujte schéma služeb do rozhraní WMI spuštěním InstallUtil.exe (výchozí umístění pro InstallUtil.exe je "%WINDIR%\Microsoft.NET\Framework\v4.0.30319") v souboru service.dll v hostitelském adresáři. Tento krok je potřeba provést pouze v případě, že byly provedeny změny v souboru service.dll.

  4. Pokud chcete spustit ukázku v konfiguraci s jedním počítačem nebo konfiguraci na více počítačích, postupujte podle pokynů v části Spouštění ukázek Windows Communication Foundation.

    Poznámka:

    Pokud jste po instalaci ASP.NET nainstalovali WCF, možná budete muset spustit%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe -r -x, abyste účtu ASPNET poskytli oprávnění k publikování objektů WMI.

  5. Pomocí příkazů můžete zobrazit data z ukázky zobrazené prostřednictvím rozhraní WMI: cscript EnumerateServices.js nebo cscript EnumerateCustomObjects.js.

Viz také