2012-01-25 16 views
9

Bir WCF istemcisi ve bir Java web hizmeti arasında ilginç bir uyumluluk sorunu yaşıyorum. Kısacası, başlığın oluşturulma şeklinin soruna neden olduğunu buldum - başlıktaki ActivityId ve Action öğelerinin yanı sıra WCF'nin, özel üstbilginin ad alanıyla yaptığı şey sorunlara neden oluyor. WSDL'yi wsdl.exe ile başarıyla kullandım, ancak WCF, Java web hizmetinin beğenmediği bir şekilde başlığını değiştiriyor gibi görünüyor. WCF istemcisinin, ActivityId ve Action öğelerini göndermemesi için bağlayıcıları ayarlayabilmem mümkün mü?WCF isteğinden ActivityId çıkarmak

+0

sen bize gösterir misin:

<source name="System.ServiceModel" switchValue="Information" propagateActivity="false"> <listeners> <add name="xml"/> </listeners> 
ActivityId etkinse

, bu masum sunucularını kırabilir, hangi SABUN başlıklarını da aşağıda enjekte İstemci tarafı yapılandırma oluşturdu? –

cevap

9

İstemcideki izlemeyi açtınız mı? Etkinlik kimliğini, izleme etkinliğini uçtan uca izleme için hizmete akıtmaya çalıştığı sırada eklediğini düşünüyorum. Aktivite izleme bayrağını kapatın ve gitmeli - eylem üstbilgisi

+0

bu öğeleri ekleyerek izlemekti; izlemeyi devre dışı bırakmak sorunu gidermeye yardımcı oldu. Java web hizmeti SOAP mesajını çok iyi yorumlamadı (bir çeşit garip isim-alanı sorunu). – CodeMonkey1313

+0

Nasıl kapatırsınız? Nesi kapalı? – irperez

+0

@irperez 'ActivityId' SOAP üstbilgisini kaldırmak için devre dışı bırakılması gereken ayarları daralttım. – StuartLC

4

için yorumuma bakın. Bu sorun, bir WCF istemcisi WCF olmayan bir sunucuya bağlanmayı denediğinde ortaya çıkar, örn. JAX-WS, Websphere vb

Sadece Richard'ın cankurtaran cevap ve adres @ irperez yorumuna eklemek için

, WCF Teşhis İzleme sırasında ActivityId eklemesini WCF teşhis önlemek için devre dışı bırakılması gerekir fiili ayarları kaldırmak şunlardır:

  • ActivityTracing Seti
  • switchvalue den propagateActivityfalse

yani Değişim

için Kaldır
<system.diagnostics> 
    <sources> 
    <source name="System.ServiceModel" switchValue="Information, ActivityTracing" 
      propagateActivity="true"> 
    <listeners> 
     <add name="xml"/> 
    </listeners> 
    </source> 
... 

için:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
    <ActivityId CorrelationId="5de75017-da08-4ac2-84f2-5374953cc2a1" 
     xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics"> 
     9f076849-e76e-4675-84c1-5026b1c2eb1a 
    </ActivityId> 
    </s:Header>