Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере WMIProvider показано, как собирать данные из служб Windows Communication Foundation (WCF) во время выполнения с помощью поставщика инструментария управления Windows (WMI), встроенного в WCF. Кроме того, в этом примере показано, как добавить определяемый пользователем объект WMI в службу. В примере активируется поставщик WMI для Getting Started и демонстрируется, как собирать данные из ICalculator службы во время выполнения.
WMI — это реализация стандарта компании Microsoft Web-Based Enterprise Management (WBEM). Дополнительные сведения о пакете SDK WMI см. в разделе "Инструментирование управления Windows". WBEM является отраслевым стандартом для того, как приложения отображают инструменты управления для внешних средств управления.
WCF реализует провайдера WMI, компонент, который предоставляет возможность мониторинга во время выполнения через интерфейс, совместимый с WBEM. Средства управления могут подключаться к службам через интерфейс во время выполнения. WCF предоставляет атрибуты таких служб, как адреса, привязки, поведение и прослушиватели.
Встроенный поставщик WMI активируется в файле конфигурации приложения. Это делается с помощью wmiProviderEnabled атрибута диагностики<> в <разделе system.serviceModel>, как показано в следующем примере конфигурации:
<system.serviceModel>
...
<diagnostics wmiProviderEnabled="true" />
...
</system.serviceModel>
Эта запись конфигурации предоставляет интерфейс WMI. Теперь приложения управления могут подключаться через этот интерфейс и получать доступ к инструментированию управления приложения.
Настраиваемый объект WMI
Добавление объектов WMI в службу позволяет выявить определяемые пользователем сведения вместе со встроенными сведениями поставщика WMI. Это достигается путем публикации схемы службы в WMI с помощью приложения Installutil.exe. Инструкции по этому выполнению, а также дополнительные сведения см. в инструкциях по настройке в конце раздела.
Доступ к данным WMI
Доступ к данным WMI можно получить различными способами. Корпорация Майкрософт предоставляет API WMI для сценариев, приложений Visual Basic, приложений C++ и платформы .NET Framework. Дополнительные сведения см. в разделе ИспользованиеWMI.
В этом примере используются два скрипта Java: один для перечисления служб, работающих на компьютере, а также некоторых их свойств, а второй — для просмотра пользовательских данных WMI. Скрипт открывает подключение к поставщику WMI, анализирует данные и отображает собранные данные.
Запустите приложение, чтобы создать работающий экземпляр службы WCF. Пока служба запущена, запустите каждый скрипт Java с помощью следующей команды в командной строке:
cscript EnumerateServices.js
Скрипт обращается к инструментированию, содержащимся в службе, и создает следующие выходные данные:
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
Затем запустите второй скрипт Java, чтобы отобразить определяемые пользователем данные WMI:
cscript EnumerateCustomObjects.js
Скрипт обращается к определяемой пользователем инструментации, содержащейся в службах, и создает следующие выходные данные:
1 WMIObject(s) found.
|-PID: 30285bfd-9d66-4c4e-9be2-310499c5cef5
|-InstanceId: 3839
|-WMIInfo: User Defined WMI Information.
В выходных данных показано, что на компьютере запущена одна служба. Служба открывает доступ к одной конечной точке, реализующей контракт ICalculator. Параметры поведения и привязки, реализованные конечной точкой, перечислены в виде суммы отдельных элементов стека обмена сообщениями.
WMI не ограничивается предоставлением инструментария управления инфраструктуры WCF. Приложение может предоставлять собственные элементы данных, относящиеся к домену, с помощью одного механизма. WMI — это единый механизм проверки и контроля веб-службы.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройкиOne-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Опубликуйте схему служб в WMI, выполнив InstallUtil.exe (расположение по умолчанию для InstallUtil.exe — "%WINDIR%\Microsoft.NET\Framework\v4.0.30319") на файле service.dll в каталоге размещения. Этот шаг необходимо выполнить только при внесении изменений в файл service.dll.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".
Замечание
Если после установки ASP.NET установлен WCF, может потребоваться запустить%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe "-r -x", чтобы предоставить учетной записи ASPNET разрешение на публикацию объектов WMI.
Просмотрите данные выборки, полученной через WMI, с помощью команд:
cscript EnumerateServices.jsилиcscript EnumerateCustomObjects.js.