Ho problemi a parlare con Java WS. Sto usando l'associazione "wsHttpBinding" con i certificati client per l'autenticazione, la codifica dei messaggi è impostata su "Testo", .net framework è 4.0. Il lato server è Java e non ho alcun controllo su di esso. La connessione viene inoltrata tramite Fiddler (questo è il modo in cui vedo le richieste sul filo, molto più user friendly rispetto alla traccia "System.Net").Client WCF che parla con Java WS, eccezione: il tipo di contenuto application/xop + xml; type = "application/soap + xml" del messaggio di risposta
eccezione che ottengo è seguente:
Il tipo di contenuto application/XOP + xml; type = "application/soap + xml" del messaggio di risposta non corrisponde al tipo di contenuto del bind (application/soap + xml; charset = utf-8).
Se cambio la codifica messaggio a "MTOM", quindi i cambiamenti di eccezione:
Il tipo di contenuto application/XOP + xml; type = "application/soap + xml" del messaggio di risposta non corrisponde al tipo di contenuto del bind (multipart/related; type = "application/xop + xml").
Il server accetta le codifiche dei messaggi "Testo" e "Mtom" per richiesta e la risposta è sempre la stessa. Questa è la risposta cruda che sto ricevendo dal server:
HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope ... </env:Envelope>
Da tutti i documenti che ho letto, risposta che viene restituito è da qualche parte tra il messaggio SOAP regolare e messaggio MTOM. Dico questo perché ogni esempio che ho visto dice che la richiesta e la risposta MTOM usano MIME come una busta per la comunicazione: il messaggio SOAP regolare è racchiuso nel pacchetto XOP e quindi questo messaggio XOP è racchiuso con MIME. Anche la raccomandazione del W3C utilizza i pacchetti MIME per XOP: W3C: XML-binary Optimized Packaging. Estratto da questo link:
Content-Type: Multipart/Related;boundary=...
se cerco di chiamare il servizio Web utilizzando funzione "soapUI" (scritto in Java, disponibile da "www.soapui.org"), chiamata di servizio viene eseguito con successo e la risposta è analizzato senza alcun problema.
FYI, questo è un cross-post da MSDN WCF forum., Ma non ci sono ancora risposte.
Qualsiasi idea è apprezzato, grazie in anticipo,
Alex
Sto affrontando lo stesso identico problema. Creare un binding personalizzato e impostare messageVersion = "Soap12" non ha funzionato per me. Una differenza che posso vedere è che la mia chiamata al servizio web è https ma questo post è per http sembra. –
Hai trovato una soluzione? Sto avendo lo stesso problema. Ma la configurazione di associazione suggerita nella prima risposta non è valida per web.config. –
HTTP vs HTTPS non fa alcuna differenza: questo è solo il dettaglio del trasporto. Il problema è la formattazione del messaggio.Il problema che avevo era che l'entità governativa stava usando un server Java (usando lo stack IBM WebSphere) e il loro stack stava producendo messaggi non conformi. C'erano due opzioni nel mio caso: 1.) usare SoapUI come app esterna che scaricherà il messaggio e quindi analizzare l'XML in C# 2). Modifica l'XML grezzo che passa attraverso la rete e cambia il messaggio XML per conformarsi agli standard -> questo tutto è stato fatto in C#. – alemarko