2012-06-29 14 views
8

Göreceli olarak basit bir hizmet ana bilgisayar işleminde (Service.exe) kendi kendine barındırılan bir WCF hizmetini tanımaya çalışıyorum. Ben Oluşan svclog dosyası baktığımızdaWCF: İleti gövdelerini nasıl izlerim?

<?xml version="1.0" ?> 
<configuration> 
    <system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="All" 
       propagateActivity="true"> 
     <listeners> 
      <add name="traceListener" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData= "c:\temp\Service.svclog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="1" 
         maxSizeOfMessageToLog="2147483647" 
         logEntireMessage="true" 
         logMessagesAtServiceLevel="true" 
         logMalformedMessages="true" 
         logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <startup> 
    <supportedRuntime version="v4.0" 
         sku=".NETFramework,Version=v4.0" /> 
    </startup> 
</configuration> 

, (Ben sadece ilk iletisi kaydedilebilir bekleniyor) birçok eser olayları günlüğe görmek ve:

Ben Service.exe.config böylece yapılandırmış İzlenen mesajların hiçbiri mesaj gövdesini (sadece başlık) gösterir.

Burada basit bir şey eksik olmalıyım eminim, ama göremiyorum.

GÜNCELLEME: WCF Config Editor'a baktığımda, "Diagnostics" altında iki bölüm vardır: MessageLogging and Tracing. Ben "EnableMessageLogging" bağlantısını tıkladığınızda, benim yapılandırma dosyası güncellendiğinde:

<system.diagnostics> 
    <sources> 
     <source propagateActivity="true" name="System.ServiceModel" switchValue="All"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add initializeData="c:\temp\MessageBodyTracing.svclog" type="System.Diagnostics.XmlWriterTraceListener" 
      name="traceListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add name="ServiceModelMessageLoggingListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="c:\users\me\documents\visual studio 2010\projects\messagebodytracing\messagebodytracing\app_messages.svclog" 
     type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 
    </system.diagnostics> 

Ben System.ServiceModel.MessageLogging adlı kaynak anahtar olduğunu tahmin - Ben mesajın herhangi belgelerinde izleme olduğunu görmemişti .. .

+0

yılında MessageLogging Neden 'maxMessagesToLog = "1"' mi? Amaca uygun mu? –

+0

Evet, bölümündeki ANYTHING öğesinin etkin olup olmadığını görmek istedim ve görünmüyor. – lesscode

cevap

6

deneyin eklemek için:

<endToEndTracing propagateActivity="true" activityTracing="true" messageFlowTracing="true" /> 

sizin diagnostics düğümünde, messageLogging altında. Diagnostics- altında true

+0

Yardım etmediniz. Bunu, yeni bir WCF Hizmet Kütüphanesi projesi oluştururken aldığınız "Merhaba Dünya" servisi ile denedim ve mesaj gövdelerini de buraya kaydetmiyorum. Şaşkın. – lesscode

+0

WCF yapılandırma düzenleyicisini VS'den kullanmaya ve servisiniz için neler oluşturduğunu gördünüz .config? –

+0

Ah, evet. Güncellenmiş soruya bakın: – lesscode

3

Set LogEntireMessage> Servis yapılandırma Editör

+4

Bu, sadece görüntüleyicide "... akış ..." göstergesini gösterir. –

+1

@Joe Phillips TransferMode, Aktarım olarak ayarlanmıştır. İzleme sadece TransferMode'u Buffered olarak ayarlarken çalışır! Yapılandırmanızı değiştirmeniz gerekecek. –

İlgili konular