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.
ExtendingTracing örneği, istemci ve hizmet kodunda kullanıcı tanımlı etkinlik izlemeleri yazarak Windows Communication Foundation (WCF) izleme özelliğini genişletmeyi gösterir. Kullanıcı tanımlı etkinlik izlemeleri yazmak, kullanıcının izleme etkinlikleri oluşturmasına ve izlemeleri mantıksal iş birimlerinde gruplandırmasına olanak tanır. Aktarımlar (aynı uç nokta içinde) ve yayma (uç noktalar arasında) aracılığıyla etkinlikleri ilişkilendirmek de mümkündür. Bu örnekte izleme hem istemci hem de hizmet için etkinleştirilmiştir. İstemci ve hizmet yapılandırma dosyalarında izlemeyi etkinleştirme hakkında daha fazla bilgi için bkz. İzleme ve İleti Günlüğü.
Bu örnek, "Başlarken" üzerine kurulmuştur.
Uyarı
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda bulunur.
İzleme ve Etkinlik Yayılımı
Kullanıcı tanımlı etkinlik izleme, kullanıcının izlemeleri mantıksal iş birimleri halinde gruplandırmak, aktarımlar ve yayma yoluyla etkinlikleri ilişkilendirmek ve WCF izlemenin performans maliyetini (örneğin, günlük dosyasının disk alanı maliyeti) azaltması için kendi izleme etkinliklerini oluşturmasına olanak tanır.
Özel kaynaklar ekleme
Kullanıcı tanımlı izlemeler hem istemci hem de hizmet koduna eklenebilir. İstemci veya hizmet yapılandırma dosyalarına izleme kaynakları eklemek, bu özel izlemelerin Hizmet İzleme Görüntüleyicisi Aracı'nda (SvcTraceViewer.exe) kaydedilmesini ve görüntülenmesini sağlar. Aşağıdaki kod, yapılandırma dosyasına adlı ServerCalculatorTraceSource kullanıcı tanımlı bir izleme kaynağının nasıl ekleneceğini gösterir.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Etkinlikleri ilişkilendirme
Etkinlikleri doğrudan uç noktalar arasında ilişkilendirmek için özniteliğinin propagateActivity izleme kaynağında true olarak ayarlanması System.ServiceModel gerekir. Ayrıca, WCF etkinliklerine katılmadan izleri aktarmak için ServiceModel Etkinlik İzleme kapatılmalıdır. Bu, aşağıdaki kod örneğinde görülebilir.
Uyarı
ServiceModel Etkinlik İzleme'yi kapatmak, özelliği tarafından belirtilen izleme düzeyinin kapalı olarak ayarlanmasıyla switchValue aynı değildir.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Performans maliyetini düşür
İzleme kaynağında ActivityTracing kapalı olarak ayarlanmasıSystem.ServiceModel, ServiceModel etkinlik izlemelerinden herhangi biri dahil olmadan yalnızca kullanıcı tanımlı etkinlik izlemelerini içeren bir izleme dosyası oluşturur. ServiceModel etkinlik izlemelerinin dışlanması çok daha küçük bir günlük dosyasına neden olur. Ancak, WCF işleme izlemelerini ilişkilendirme fırsatı kaybolur.
Örneği ayarlama, derleme ve çalıştırma
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan 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.
Ö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.