2009-12-15 20 views
5

WCF ve SOAP mesajlaşma konusunda çok yeni ama bir medya kuruluşundan haberleri indirmek için kullanıyorum oldukça iyi bir müşteri oluşturmayı başardım. Belli ki, çok fazla soyut olan ve temelde sadece nesne oluşturduğum, yöntemleri çağıran ve sonuçlarla yinelemek anlamına gelen proxy sınıfları oluşturdum.İşlenmemiş XML talebini görüntüle

Sorunum, web hizmetine yapılan çağrıların neye benzediğine dair ham XML örneklerine sahip olduğumu ve bunları yapmakta olduğum çağrılarla "karşılaştırmak" istiyorum. Temel olarak, yaptığım aramaların test amaçlı örnek XML dosyaları ile aynı olmasını sağlamalıyım.

Sorduğum şey mantıklı mı, yoksa yanlış yola mı gidiyorum? Lütfen, bıraktığım herhangi bir bilgi varsa, paragraflar için patlatabilirim, ancak hangi bilgilerin uygun olduğundan emin olamama izin verin.

cevap

2

Microsoft'tan Service Trace Viewer aracını kullandınız mı? This MSDN page size nasıl kullanılacağı hakkında bilgi verecektir.

+0

Yanıt için teşekkürler, slugster. Buna bir bakacağım ve nasıl gittiğimi postalayacağım. – dave

2

bunun için stok cevabı bir proxy gibi fiddler kullanmaktır - Bu sizin istemci ve hizmet arasında giden ve gelen iletileri görüntülemek için izin verecektir.

henüz kişisel deneyimlerinden konuşamıyor, ancak takım üyeleri (eski bir hayat) benim için gelişmekte olan - çok haklı - kullanımını kolaylaştırmak için bir proxy açıkça kullanımı için destek inşa ile hizmet sarmalayıcılar kodlu Kemancı.

+0

Yanıt için teşekkürler. Fiddler'ı kullanmayla ilgili sorun, SSL güvenli bir web hizmeti olmasıdır. Bu nedenle, web servisinin tanınmamış bir CA olduğundan Fiddler'ın sertifikasını beğenmediği sorunlar vardır. Sunucu sertifikası doğrulamasını geçersiz kılmayı denedim, ancak web hizmetinde bunun hiç hoşlanmadığı bir şey var. Cevap sadece bu – dave

+0

ile oynamaya devam etmek olabilir Canlı HTTP üstbilgileri, bir Firefox eklentisi denediniz mi? CA'yı destekleyip desteklemediğinden emin değilim, ama bir şans vermek için buna değer. –

10

Ham XML mesajlarını günlüğe kaydetmek için WCF izlemeyi kullanabilirsiniz. şudur .config WCF ham ileti günlüğü ile izleme sağlar: WCF MSDN: Configuring Tracing dan Takip yaklaşık

<configuration> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="30000" 
       logEntireMessage="true" 
       logMessagesAtServiceLevel="true" 
       logMalformedMessages="true" 
       logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <system.diagnostics> 
    <sources> 
     <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- Log all messages in the 'Messages' tab of SvcTraceViewer. --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- ActivityTracing and propogateActivity are used to flesh out the 'Activities' tab in 
      SvcTraceViewer to aid debugging. --> 
     <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- This records Microsoft.IdentityModel generated traces, including exceptions thrown 
      from the framework. --> 
     <source name="Microsoft.IdentityModel" switchValue="Warning"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
</configuration> 

Daha okuyabilirsiniz.

Microsoft, .svclog dosyalarını okumak için Service Trace Viewer Tool sağlar.

initializeData'da tanımlanan yolun hizmetiniz tarafından yazılabilir olduğundan emin olun.

0

WCF hakkında çok şey bilmiyorum nasıl yapılacağı konusunda iyi bir post, ama bir yere vücudunu açmış ağınızdaki farklı bir web sunucusuna bağlantı yönlendirebilir. Bu, tam olarak ne gönderdiğinizi görmenizi sağlar, ancak bazı altyapı çalışmaları gerektirir. Bu, geliştirme makinenizde çalışan bir web sunucusu olabilir.

İlgili konular