Domanda

sto iniziando questo Wiki per raccogliere le migliori pratiche sulla creazione di servizi interoperabili web (non clienti) in WCF. Si prega di condividere la vostra esperienza se sapete qualsiasi caratteristica che in genere non è interoperabile o che non è interoperabile con la piattaforma specifica.

È stato utile?

Soluzione

abbastanza semplice:

  • evitare eventuali specifiche .NET come eccezioni (li trasformano in errori SOAP)

  • Non utilizzare alcun legame che iniziano con net come netTcp, netNamedPipes, netMsmq e così via - l'uso wsHttpBinding per WS- * sicuro servizi e basicHttpBinding per la massima portata / compatibilità anche con le piattaforme client più strane

  • non utilizzare il NetDataContractSerializer

Altri suggerimenti

Vi consiglio WCF REST esporre più formati di serializzazione, sicuramente xml per cominciare.

interoperabilità generale:

  • Solo HTTP e HTTPS canali di trasporto sono interoperabili
  • La negoziazione delle credenziali di sicurezza non è interoperabile (negotiateServiceCredential in sicurezza dei messaggi). Esso utilizza i protocolli TLSNego o SPNEGO che non sono sempre supportati da altre piattaforme.
  • streaming HTTP possono causare problemi così
  • di codifica binaria tramite HTTP canale non è interoperabile
  • OleTransactions non sono interoperabili
  • Usa contesto di sicurezza di servizio con cura (estabilishSecurityContext in sicurezza dei messaggi). Esso utilizza WS-Secure Conversation protocollo che non è disponibile su alcune piattaforme

Modifica

  • WSDualHttpBinding e CompositeDuplexBindingElement non sono interoperabili
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top