WMI-AnbieterWMI Provider

Dieses Beispiel veranschaulicht, wie Daten aus Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Diensten mithilfe des in WCFWCF integrierten WMI-Anbieters (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation) zur Laufzeit erfasst werden.This sample demonstrates how to gather data from Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) services at runtime by using the Windows Management Instrumentation (WMI) provider that is built into WCFWCF. Außerdem wird in diesem Beispiel gezeigt, wie einem Dienst ein benutzerdefiniertes WMI-Objekt hinzugefügt wird.Also, this sample demonstrates how to add a user-defined WMI object to a service. Das Beispiel aktiviert den WMI-Anbieter für die Einstieg und veranschaulicht, wie zum Sammeln von Daten aus der ICalculator -Dienst zur Laufzeit.The sample activates the WMI provider for the Getting Started and demonstrates how to gather data from the ICalculator service at runtime.

Bei WMI handelt es sich um die Implementierung des Web-Based Enterprise Management (WBEM)-Standards von Microsoft.WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) standard. Weitere Informationen zum WMI-SDK finden Sie unter Windows-Verwaltungsinstrumentation.For more information about the WMI SDK, see Windows Management Instrumentation. Bei WBEM handelt es sich um einen Industriestandard für das Verhalten von Anwendungen beim Verfügbarmachen der Verwaltungsinstrumentierung für externe Verwaltungstools.WBEM is an industry standard for how applications expose management instrumentation to external management tools.

WCFWCF implementiert einen WMI-Anbieter, eine Komponente, die die Instrumentation zur Laufzeit über eine WBEM-kompatible Schnittstelle verfügbar macht. implements a WMI provider, a component that exposes instrumentation at runtime through a WBEM-compatible interface. Über die Schnittstelle können Verwaltungstools zur Laufzeit Verbindungen mit den Diensten herstellen.Management tools can connect to the services through the interface at runtime. WCFWCF macht Attribute von Diensten (wie Adressen, Bindungen, Verhaltensweisen und Listener) verfügbar. exposes attributes of services such as addresses, bindings, behaviors, and listeners.

Der integrierte WMI-Anbieter wird in der Konfigurationsdatei der Anwendung aktiviert.The built-in WMI provider is activated in the configuration file of the application. Dies erfolgt über die wmiProviderEnabled Attribut des der <Diagnose > in der <system.serviceModel > Abschnitt, wie im folgenden Beispiel gezeigt. Konfiguration:This is done through the wmiProviderEnabled attribute of the <diagnostics> in the <system.serviceModel> section, as shown in the following sample configuration:

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

Mit diesem Konfigurationseintrag wird eine WMI-Schnittstelle verfügbar gemacht.This configuration entry exposes a WMI interface. Über diese Schnittstelle kann nun von Verwaltungsanwendungen eine Verbindung hergestellt und auf die Verwaltungsinstrumentation der Anwendung zugegriffen werden.Management applications can now connect through this interface and access the management instrumentation of the application.

Benutzerdefiniertes WMI-ObjektCustom WMI Object

Wenn einem Dienst WMI-Objekte hinzugefügt werden, können zusammen mit den Informationen des integrierten WMI-Anbieters auch benutzerdefinierte Informationen preisgegeben werden.Adding WMI objects to a service makes it possible to reveal user-defined information along with the built-in WMI provider information. Dies wird durchgeführt, indem das Schema des Diensts mithilfe der Anwendung "Installutil.exe" in WMI veröffentlicht wird.This is accomplished by publishing the schema of the service to WMI by using the Installutil.exe application. Eine Anleitung dazu und ausführlichere Informationen finden Sie in den Anweisungen zum Einrichten am Ende dieses Themas.Instructions to accomplish this, along with more details can be found in the setup instructions at the end of the topic.

Zugreifen auf WMI-InformationenAccessing WMI Information

Auf WMI-Daten kann auf mehreren Wegen zugegriffen werden.WMI data can be accessed many different ways. Microsoft stellt WMI-APIs für Skripts, Visual BasicVisual Basic-Anwendungen, C++-Anwendungen und die .NET Framework.NET Framework (http://msdn.microsoft.com/library/default.asp?url=/library/wmisdk/wmi/using_wmi.asp) bereit.Microsoft provides WMI APIs for scripts, Visual BasicVisual Basic applications, C++ applications, and the .NET Framework.NET Framework (http://msdn.microsoft.com/library/default.asp?url=/library/wmisdk/wmi/using_wmi.asp).

In diesem Beispiel werden zwei Javaskripts verwendet: das eine zum Auflisten der auf dem Computer ausgeführten Dienste mit einigen ihrer Eigenschaften und das andere zum Anzeigen benutzerdefinierter WMI-Daten.This sample uses two Java scripts: one to enumerate services running on the computer along with some of their properties and the second to view user-defined WMI data. Das Skript öffnet eine Verbindung zum WMI-Anbieter, analysiert Daten und zeigt die erfassten Daten an.The script opens a connection to the WMI provider, parses data, and displays the data gathered.

Starten Sie das Beispiel, um eine laufende Instanz eines WCFWCF-Diensts zu erstellen.Start the sample to create a running instance of a WCFWCF service. Führen Sie mit dem folgenden Befehl jedes Javaskript in der Eingabeaufforderung aus, während der Dienst ausgeführt wird:While the service is running, run each Java script by using the following command at the command prompt:

cscript EnumerateServices.js  

Das Skript greift auf die im Dienst enthaltene Instrumentation zu und erzeugt die folgende Ausgabe:The script accesses the instrumentation contained in the service and produces the following output:

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  

Führen Sie danach das zweite Javaskript zum Anzeigen der benutzerdefinierten WMI-Daten aus:Next, run the second Java Script to display the user-defined WMI data:

cscript EnumerateCustomObjects.js  

Das Skript greift auf die in den Diensten enthaltene benutzerdefinierte Instrumentation zu und erzeugt die folgende Ausgabe:The script accesses the user-defined instrumentation contained in the services and produces the following output:

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

Die Ausgabe zeigt an, dass auf dem Computer ein einziger Dienst ausgeführt wird.The output shows that there is a single service running on the computer. Der Dienst macht einen Endpunkt verfügbar, der den ICalculator-Vertrag implementiert.The service exposes one endpoint that implements the ICalculator contract. Die Einstellungen des vom Endpunkt implementierten Verhaltens und der implementierten Bindung werden als Summe einzelner Elemente des Messagingstapels aufgeführt.The settings of the behavior and binding that are implemented by the endpoint are listed as the sum of individual elements of the messaging stack.

WMI beschränkt sich nicht darauf, die Verwaltungsinstrumentation der WCFWCF-Infrastruktur verfügbar zu machen.WMI is not limited to exposing the management instrumentation of the WCFWCF infrastructure. Die Anwendung kann mithilfe desselben Mechanismus ihre eigenen domänenspezifischen Datenelemente verfügbar machen.The application can expose its own domain-specific data items through the same mechanism. WMI ist ein einheitlicher Mechanismus zur Kontrolle und Steuerung eines Webdiensts.WMI is a unified mechanism for inspection and control of a Web service.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, die von Ihnen ausgeführte der Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. Veröffentlichen Sie das Dienstschema in WMI, indem Sie die Datei InstallUtil.exe (die sich standardmäßig unter "%WINDIR%\Microsoft.NET\Framework\v4.0.30319" befindet) für die Datei service.dll im Hostingverzeichnis ausführen.Publish the services schema to WMI by running the InstallUtil.exe (the default locations for InstallUtil.exe is "%WINDIR%\Microsoft.NET\Framework\v4.0.30319") on the service.dll file in the hosting directory. Dieser Schritt muss nur dann ausgeführt werden, wenn an der Datei service.dll Änderungen vorgenommen wurden.This step only needs to be executed when changes have been made to the service.dll file. Weitere Informationen finden Sie unter "Bereitstellen von Verwaltungsinformationen durch Instrumentieren von Anwendungen" unter "http://msdn2.microsoft.com/library/ms186147.aspx" im Abschnitt "Vorgehensweise: Veröffentlichen des Schemas für eine instrumentierte Anwendung in WMI".For more information, see Providing Management Information by Instrumenting Applications at: http://msdn2.microsoft.com/library/ms186147.aspx in the "How To: Publish the Scheme to WMI for an Instrumented Application" section.

  4. Um das Beispiel in einer Einzelcomputer- oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

    Hinweis

    Wenn Sie WCFWCF nach der Installation von ASP.NET installiert haben, müssen Sie u. U. "%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe -r –x" ausführen, um dem ASPNET-Konto die Berechtigung zum Veröffentlichen von WMI-Objekten zu erteilen.If you installed WCFWCF after installing ASP.NET, you may need to run "%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe " -r -x to give the ASPNET account permission to publish WMI objects.

  5. Die über WMI verfügbar gemachten Daten aus dem Beispiel zeigen Sie mit den folgenden Befehlen an: cscript EnumerateServices.js oder cscript EnumerateCustomObjects.js.View data from the sample surfaced through WMI by using the commands: cscript EnumerateServices.js or cscript EnumerateCustomObjects.js.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Management\WMIProvider

Siehe auchSee Also

Überwachen der AppFabric-BeispieleAppFabric Monitoring Samples