Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
WMIProvider örneği, WCF'de yerleşik olarak bulunan Windows Yönetim Araçları (WMI) sağlayıcısını kullanarak çalışma zamanında Windows Communication Foundation (WCF) hizmetlerinden veri toplamayı gösterir. Ayrıca, bu örnekte hizmete kullanıcı tanımlı WMI nesnesinin nasıl ekleneceği gösterilmektedir. Örnek, Başlarken için WMI sağlayıcısını etkinleştirir ve çalışma zamanında ICalculator hizmetinden veri toplamanın gösterimidir.
WMI, Microsoft'un Web-Based Enterprise Management (WBEM) standardını uygulamasıdır. WMI SDK'sı hakkında daha fazla bilgi için bkz. Windows Yönetim Araçları. WBEM, uygulamaların yönetim araçlarını dış yönetim araçlarına nasıl kullanıma sunmasına yönelik bir endüstri standardıdır.
WCF, bir WBEM uyumlu arabirim aracılığıyla araçları çalışma zamanında sağlayan bir bileşen olan WMI sağlayıcısını uygular. Yönetim araçları, çalışma zamanında arabirim aracılığıyla hizmetlere bağlanabilir. WCF, adresler, bağlamalar, davranışlar ve dinleyiciler gibi hizmetlerin özniteliklerini kullanıma sunar.
Yerleşik WMI sağlayıcısı, uygulamanın yapılandırma dosyasında etkinleştirilir. Bu işlem, aşağıdaki örnek yapılandırmada wmiProviderEnabledgösterildiği gibi, <tanılama> özniteliği aracılığıyla > system.serviceModel bölümünde yapılır.
<system.serviceModel>
...
<diagnostics wmiProviderEnabled="true" />
...
</system.serviceModel>
Bu yapılandırma girdisi bir WMI arabirimini kullanıma sunar. Yönetim uygulamaları artık bu arabirim üzerinden bağlanabilir ve uygulamanın yönetim araçlarına erişebilir.
Özel WMI Nesnesi
Bir hizmete WMI nesneleri eklemek, yerleşik WMI sağlayıcısı bilgileriyle birlikte kullanıcı tanımlı bilgilerin de açığa çıkmasına olanak tanır. Bu, Installutil.exe uygulamasını kullanarak hizmetin şemasını WMI'ye yayımlayarak gerçekleştirilir. Bunu yapmak için yönergeler ve daha fazla ayrıntı konu başlığının sonundaki kurulum yönergelerinde bulunabilir.
WMI Bilgilerine Erişme
WMI verilerine birçok farklı yolla erişilebilir. Microsoft betikler, Visual Basic uygulamaları, C++ uygulamaları ve .NET Framework için WMI API'leri sağlar. Daha fazla bilgi için bkz. WMIkullanma .
Bu örnekte iki Java betik kullanılır: biri bilgisayarda çalışan hizmetleri, bazı özellikleriyle birlikte listelemek ve ikincisi kullanıcı tanımlı WMI verilerini görüntülemek için. Betik WMI sağlayıcısına bir bağlantı açar, verileri ayrıştırıp toplanan verileri görüntüler.
WCF hizmetinin çalışan bir örneğini oluşturmak için örneği başlatın. Hizmet çalışırken, komut isteminde aşağıdaki komutu kullanarak her Java betiğini çalıştırın:
cscript EnumerateServices.js
Betik, hizmette bulunan enstrümantasyonlara erişir ve aşağıdaki çıktıyı oluşturur.
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
Ardından, kullanıcı tanımlı WMI verilerini görüntülemek için ikinci Java Betiğini çalıştırın:
cscript EnumerateCustomObjects.js
Betik, hizmetlerde bulunan kullanıcı tanımlı enstrümantasyona erişir ve aşağıdaki çıktıyı oluşturur:
1 WMIObject(s) found.
|-PID: 30285bfd-9d66-4c4e-9be2-310499c5cef5
|-InstanceId: 3839
|-WMIInfo: User Defined WMI Information.
Çıktı, bilgisayarda çalışan tek bir hizmet olduğunu gösterir. Hizmet, sözleşmeyi ICalculator uygulayan bir uç noktayı kullanıma sunar. Uç nokta tarafından uygulanan davranış ve bağlama ayarları, mesajlaşma yığınının tek tek öğelerinin toplamı olarak listelenir.
WMI, WCF altyapısının yönetim araçlarını ortaya çıkarmakla sınırlı değildir. Uygulama, aynı mekanizma aracılığıyla kendi etki alanına özgü veri öğelerini kullanıma açabilir. WMI, web hizmetinin denetlenip denetlenmesinde birleştirilmiş bir mekanizmadır.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.
Barındırma dizinindeki service.dll dosyasında InstallUtil.exe (InstallUtil.exe için varsayılan konumlar "%WINDIR%\Microsoft.NET\Framework\v4.0.30319") çalıştırarak hizmet şemasını WMI'de yayımlayın. Bu adımın yalnızca service.dll dosyasında değişiklikler yapıldığında yürütülmesi gerekir.
Örneği tek veya bilgisayarlar arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.
Uyarı
ASP.NET yükledikten sonra WCF yüklediyseniz, ASPNET hesabına WMI nesnelerini yayımlama izni vermek için "%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe " -r -x çalıştırmanız gerekebilir.
WMI aracılığıyla ortaya çıkarılmış örnekteki verileri şu komutları kullanarak görüntüleyin:
cscript EnumerateServices.jsveyacscript EnumerateCustomObjects.js.