Aracılığıyla paylaş


İzlemeyi genişletme

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'i temel alır.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda bulunur.

İzleme ve Etkinlik Yayma

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 System.ServiceModel olarak ayarlanması true gerekir. Ayrıca, WCF etkinliklerine gitmeden izlemeleri yaymak için ServiceModel Etkinlik İzleme kapatılmalıdır. Bu, aşağıdaki kod örneğinde görülebilir.

Not

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 System.ServiceModel kapalı olarak ayarlanmasıActivityTracing, 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

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.

  3. Ö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.

Ayrıca bkz.