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.
TracingAndLogging örneği, izlemeyi ve ileti günlüğünü etkinleştirmeyi gösterir. Sonuçta elde edilen izlemeler ve ileti günlükleri , Hizmet İzleme Görüntüleyicisi Aracı (SvcTraceViewer.exe) kullanılarak görüntülenir. Bu örnek, "Başlarken" üzerine kurulmuştur.
Uyarı
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
İzleme
Windows Communication Foundation (WCF), ad alanında tanımlanan izleme mekanizmasını System.Diagnostics kullanır. Bu izleme modelinde, izleme verileri uygulamaların uyguladığı izleme kaynakları tarafından oluşturulur. Her kaynak bir adla tanımlanır. İzleme tüketicileri, bilgilerini almak istedikleri izleme kaynakları için izleme dinleyicileri oluşturur. İzleme verilerini almak için izleme kaynağı için bir dinleyici oluşturmanız gerekir. WCF'de bu, Hizmet Modeli izleme kaynağı switchValueayarlanarak hizmetin veya istemcinin yapılandırma dosyasına aşağıdaki kodun eklenmesiyle yapılabilir:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
İzleme kaynakları hakkında daha fazla bilgi için İzlemeyi Yapılandırma konusunun İzleme Kaynağı bölümüne bakın.
Etkinlik İzleme ve Yayılması
hem istemci hem de hizmet için ActivityTracing izleme kaynaklarında hem propagateActivity etkinleştirildiğinde hem de true olarak ayarlanmış system.ServiceModel olduğunda, izlerin mantıksal işlem birimleri (yani etkinlikler), uç noktalar içindeki etkinlikler (etkinlik aktarımları aracılığıyla) ve birden çok uç noktayı kapsayan etkinlikler arasında (etkinlik kimliği yayma yoluyla) bağıntısı sağlanır.
Bu üç mekanizma (etkinlikler, aktarımlar ve yayma), Hizmet İzleme Görüntüleyicisi aracını kullanarak bir hatanın kök nedenini daha hızlı bulmanıza yardımcı olabilir. Daha fazla bilgi için bkz. Bağıntılı İzlemeleri Görüntülemek ve Sorun Giderme için Hizmet İzleme Görüntüleyicisi'ni Kullanma.
Kullanıcı tanımlı etkinlik izlemeleri oluşturarak ServiceModel tarafından sağlanan izlemeyi genişletmek mümkündür. Kullanıcı tanımlı etkinlik izleme, kullanıcının aşağıdakiler için izleme etkinlikleri oluşturmasına olanak tanır:
İzlemeleri mantıksal iş birimlerine göre gruplandırın.
Aktarımlar ve yayma yoluyla etkinlikleri ilişkilendirin.
WCF izlemenin performans maliyetini (örneğin, günlük dosyasının disk alanı maliyeti) düşürebilirsiniz.
Kullanıcı tanımlı etkinlik izlemesi hakkında daha fazla bilgi için lütfen İzlemeyi Genişletme örneğine bakın.
Mesaj Kaydı
İleti günlüğü, herhangi bir WCF uygulamasının hem istemcisinde hem de hizmetinde etkinleştirilebilir. İleti günlüğünü etkinleştirmek için istemciye veya hizmete aşağıdaki kodu eklemeniz gerekir:
<configuration>
<system.serviceModel>
<diagnostics>
<!-- Enable Message Logging here. -->
<!-- log all messages received or sent at the transport or service model levels -->
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
</system.serviceModel>
</configuration>
bir ileti kaydedildiğinde, izleme türü istemcide mi yoksa sunucuda mı izlendiğine bağlıdır. Örneğin, istemciye gönderilen bir "Ekle" iletisi istemcideki "TransportWrite" kategorisi altında izlenmişken, aynı ileti hizmetteki "TransportRead" kategorisi altında izleniyor.
İstemcinin App.config dosyasının veya hizmetin Web.config dosyasının bölümüne aşağıdaki kodu System.Diagnostics ekleyerek izleme dinleyicisini yapılandırın:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
İletiler, yapılandırma dosyasında belirtilen hedef dizinde XML biçiminde günlüğe kaydedilir.
Uyarı
İzleme dosyaları başlangıçta günlük dizini oluşturulmadan oluşturulmaz. C:\logs\ dizininin var olduğundan emin olun veya dinleyici yapılandırmasında alternatif bir günlük dizini belirtin. Daha fazla bilgi için bu belgenin sonundaki ilk kurulum yönergelerine bakın.
İleti günlüğü hakkında daha fazla bilgi için İleti Günlüğünü Yapılandırma konusuna bakın.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
İzleme ve İleti Günlüğü örneğini çalıştırmadan önce hizmetin .svclog dosyalarını yazacağı C:\logs\ dizinini oluşturun. Bu dizinin adı, yapılandırma dosyasında günlüğe kaydedilecek izlemelerin ve iletilerin yolu olarak tanımlanır ve değiştirilebilir. Kullanıcıya Günlükler dizinine Ağ Hizmeti yazma erişimi verin.
Çözümün C#, C++ veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığı altı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.