Sto riscontrando un problema di compatibilità interessante tra un client WCF e un servizio Web Java. In breve, ho scoperto che il modo in cui viene generata l'intestazione causa il problema: gli elementi ActivityId e Action nell'intestazione e ciò che WCF sta facendo con lo spazio dei nomi dell'intestazione personalizzata sta causando problemi. Ho consumato con successo WSDL con wsdl.exe, ma WCF sembra manipolare l'intestazione in un modo che il servizio web Java non piace. C'è un modo in cui posso impostare i binding per il client WCF per non inviare gli elementi ActivityId e Action?Rimuovi ActivityId dalla richiesta WCF
risposta
Avete traccia attivata nel client? Penso che sia quello che sta aggiungendo l'ID dell'attività mentre cerca di far scorrere l'attività di tracciamento al servizio per la traccia end-to-end. Disattiva il flag di tracciamento attività e dovrebbe andare - vedi il mio commento per l'intestazione azione
era la traccia che aggiungeva quegli elementi; disabilitare la traccia ha aiutato a risolvere il problema. Il servizio web Java non ha interpretato il messaggio SOAP molto bene (una sorta di strano problema di namespace). – CodeMonkey1313
Come lo spegnete? Chi è spento? – irperez
@irperez Ho ristretto le impostazioni che devono essere disattivate per rimuovere l'intestazione SOAP 'ActivityId'. – StuartLC
Questo problema si verifica in genere quando un client WCF tenta di connettersi a un server non WCF, ad es. JAX-WS, Websphere ecc
Giusto per aggiungere al commento di Richard salvagente risposta e l'indirizzo di @ irperez, le impostazioni effettive che devono essere disattivato per evitare che la diagnostica WCF di aggiungere ActivityId
durante WCF diagnostica Tracing sono da rimuovere:
- Rimuovere
ActivityTracing
daswitchvalue
- Set
propagateActivity
alfalse
cioè Change
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml"/>
</listeners>
</source>
...
A:
<source name="System.ServiceModel" switchValue="Information"
propagateActivity="false">
<listeners>
<add name="xml"/>
</listeners>
Se il ActivityId
è attivata, inietta il seguito nelle intestazioni SOAP, che può rompere i server ignari:
<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>
- 1. Rimuovi estensione .xml dalla richiesta ActiveResource
- 2. Rimuovi poligono dalla mappa
- 3. elemento rimuovi dalla matrice
- 4. Rimuovi HTML dalla stringa
- 5. PHP Rimuovi URL dalla stringa
- 6. Rimuovi elemento dalla raccolta Backbone
- 7. Rimuovi l'ultima riga dalla stringa
- 8. Rimuovi gli accenti dalla stringa
- 9. Rimuovi elemento dalla oggetto JSON
- 10. Git - Rimuovi commit dalla cronologia
- 11. Rimuovi nesimo carattere dalla stringa
- 12. Rimuovi badge dalla voce tabbar
- 13. Python Rimuovi elemento dalla lista
- 14. Servizio dati WCF - Errore richiesta
- 15. Rimuovi ogni ennesimo elemento dalla stringa
- 16. Rimuovi newline dalla fine del file
- 17. Rimuovi ora dalla data/ora vb.net
- 18. Ruby/Rails - Rimuovi ActiveAdmin dalla mia applicazione
- 19. PHP rimuovi i simboli dalla stringa
- 20. Rimuovi Watchkit Glance dalla mia app
- 21. Rimuovi elementi duplicati dalla matrice in Ruby
- 22. rimuovi tutti gli UIButton dalla sottoview
- 23. Trova e rimuovi elementi dalla raccolta
- 24. Rimuovi repository dalla panoramica di GitKraken
- 25. Rimuovi index.php dalla funzione site_url nel codeigniter
- 26. Rimuovi app iOS dalla riga di comando
- 27. Javascript/jQuery: rimuovi forma/percorso dalla tela
- 28. Rimuovi tutte le occorrenze di \ dalla stringa
- 29. Elaborazione richiesta/risposta compressione GZip WCF
- 30. Errore servizio WCF 400 richiesta errata
ci mostri il lato client ha generato la configurazione? –