2010-04-16 11 views
250

Dans WCF, il existe plusieurs types de liaisons à base HTTP:BasicHttpBinding vs WSHttpBinding vs WebHttpBinding

Quelles sont les différences entre ces 3?

En particulier, quelles sont les différences en termes de fonctionnalités/performances et de compatibilité?

+29

[BasicHttpBinding = Soap 1.1], [WsHttpBinding = Soap 1.2], [WebHttpBinding = Rest] –

+0

Une comparaison des deux liaisons SOAP-based ici : [basicHttpBinding vs wsHttpBinding] (http://stackoverflow.com/q/2106715/1497596) – DavidRR

Répondre

444

Vous comparez des pommes avec des oranges ici:

  • webHttpBinding est la liaison de style REST, où vous fondamentalement juste frapper une URL et récupérer un chargement de camion de XML ou JSON du service Web

  • basicHttpBinding et wsHttpBinding sont deux liaisons SOAP qui est tout à fait différent de REST. SOAP a l'avantage d'avoir WSDL et XSD pour décrire le service, ses méthodes, et les données transmises avec beaucoup de détails (REST n'a rien de tel - pour le moment). D'un autre côté, vous ne pouvez pas simplement accéder à un point de terminaison wsHttpBinding avec votre navigateur et regarder XML - vous devez utiliser un client SOAP, par exemple. le WcfTestClient ou votre propre application.

Donc, votre première décision doit être: REST vs SOAP (ou vous pouvez exposer les deux types de terminaux de votre service - qui est possible aussi).

Puis, entre basicHttpBinding et wsHttpBinding, les différences là sont les suivantes:

  • basicHttpBinding est très contraignant de base - SOAP 1.1, pas grand-chose en termes de sécurité, pas grand-chose en termes de fonctionnalités - mais compatible avec à peu près tous les clients SOAP disponibles -> excellent pour l'interopérabilité, faible sur les fonctionnalités et la sécurité

  • wsHttpBinding est la liaison complète, qui prend en charge une tonne de fonctionnalités WS- * et les normes - il a beaucoup plus fonctions de sécurité, vous pouvez utiliser des connexions de session, vous pouvez utiliser une messagerie fiable, vous pouvez utiliser le contrôle transactionnel - juste beaucoup plus de choses, mais wsHttpBinding est aussi beaucoup * plus lourd » et ajoute beaucoup de frais généraux à vos messages car ils voyagent à travers le réseau

Pour une comparaison approfondie (y compris une table et des exemples de code) entre les deux consultez cet article codeproject: Differences between BasicHttpBinding and WsHttpBinding

+1

Je ne prends aucune décision ici chérie je voulais juste savoir la différence, vous devez savoir quel est le goût o f orange et le même de pomme c'est pourquoi j'ai posé cette question. J'ai besoin de plus sur WebHttpBinding en termes de comparaisons de fonctionnalités et de performances –

+0

Découvrez Google ou Bing et recherchez "REST vs.SOAP "- ** CHARGE ** d'information là-bas! –

+4

Une correction: wsHttpBinding ne supporte pas la diffusion en continu, ou est-ce que je manque quelque chose? Http://msdn.microsoft.com/fr-fr/library/ms730879.aspx –

Questions connexes