Qualcuno è a conoscenza di problemi con l'utilizzo di WCF per esporre un'interfaccia SOAP per client non .NET?

StackOverflow https://stackoverflow.com/questions/109083

Domanda

Qualcuno è a conoscenza di problemi con l'utilizzo di WCF per esporre un'interfaccia SOAP per client non .NET? Ad esempio incompatibilità con altre librerie SOAP?

In questo modo l'interfaccia SOAP può essere esposta per consentire a terzi di integrarsi con il nostro software.

È stato utile?

Soluzione

Alcune delle aree problematiche che ho riscontrato con WCF:

  • Genera WSDL che è diviso su più URL. Cioè, uno parte dello schema si trova in un URL, un altro si trova su un URL diverso, ecc. Il "principale" URL WSDL (quello con solo "? WSDL " dopo il nome del servizio) fa riferimento agli altri tramite xsd: import elementi. Molti client SOAP (ad es. Pre-NET Delphi) hanno enormi difficoltà con questo linguaggio. Quindi devi davvero " appiattire " il tuo WSDL per raggiungere l'interoperabilità nella pratica. Una soluzione è data qui .
  • WCF non genera spazi dei nomi XML allo stesso modo, diciamo, di ASMX web Servizi. WCF ha la tendenza a collocare qualsiasi contratto di servizio o dati in un suo spazio dei nomi scelta. Ancora una volta, alcuni client SOAP hanno difficoltà con questo. È possibile aumentare il livello di interoperabilità aggiungendo uno spazio dei nomi esplicito agli attributi ServiceContract e DataContract.
  • Molti client SOAP non gestiranno guasti altrettanto bene dei client WCF. Per esempio, il codice di generazione proxy non lo farà creare oggetti lato client per guasti dichiarati nel WSDL. Il i guasti verranno comunque trasmessi a il cliente, ovviamente, ma il il cliente deve quindi lavorare di più capire che tipo di colpa è era.

Altri suggerimenti

Le versioni dello stack degli standard WS- * possono anche essere un problema di interoperabilità, ad esempio la versione di WS-Addressing (2003) supportata da alcune implementazioni Java come Oracle BPEL non è supportata da WCF che supporta le versioni successive di bozza e 1.0 ma non quello precedente del 2003

Generalmente tutto funziona bene. Ovviamente dipenderà dal client che stai utilizzando, non tutti implementano correttamente SOAP.

P.S. Potresti riformulare la tua domanda se speri in una risposta più specifica?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top