Visual Studio/SAVON - "Ajouter une Référence de Service' vs 'Ajouter une Référence de Service Web'
J'ai trouvé que je peux importer un SOAP/WSDL du service que j'ai l'intention de l'aide dans ma solution soit comme un "Service Web de Référence" (le Système.Web.Services) ou comme un "Service de Référence" (le Système.ServiceModel /WCF).
Je me demandais si l'quelles étaient les différences. Je comprends que 'Ajouter une Référence de Service'/WCF est plus récent, qu'il ya des inconvénients à l'utilisation de ce Système.Web.Services ou est-il maintenant de la manière préférée de la consommation de SAVON services .Net?
Vous devez vous connecter pour publier un commentaire.
Le préféré et le plus utile est en effet d'utiliser
Add Service Reference
. Cela va ajouter à votre service WCF côté client proxy.Add Web Reference
est le "old-style" ASMX/ASP.NET webservice façon de faire les choses.WCF est le meilleur choix que ASMX, parce que:
Oui, la WCF a une mauvaise réputation au sujet d'être vraiment dur à apprendre, je ne trouve pas vraiment que ce soit vrai. Découvrez celles du débutant ressources - très utile en effet!
J'ai une application qui appelle une existante service SOAP qui est écrit en J2EE et hébergé dans WebSphere.
J'ai créé deux applications de console - un référencement sur le service comme une ancienne école de Service Web et un autre qui fait référence à elle comme une Référence de Service.
Dans les deux cas, Visual Studio crée une classe proxy et appropriés à la configuration des entrées pour le service.
Dans le Service de Référence de l'application console, je reçois beaucoup plus d'options de configuration que je ne vois pas dans le Service Web app. En particulier, je peux définir la taille maximale des messages, etc.
En effet, afin d'obtenir le Service de Référence de la console application fonctionne correctement, j'ai dû augmenter la taille de message par défaut afin de récupérer toutes les données envoyées à l'un des appels de méthode.
Voici ce que la configuration ressemble à dans le Service de Référence de l'application:
Dans mon ancienne école de Service Web application console, je n'ai pas eu à modifier la configuration à tout pour récupérer le géant de l'ensemble des données envoyées. Voici quelle est sa configuration ressemble:
C'est beaucoup plus simple, mais n'a pas beaucoup d'options que nous obtenons avec des Références de Service.
Le code appelant le service est presque identique dans les deux cas.
Pour répondre à votre question, mais, je pense qu'il est important de s'en tenir à la façon actuelle de faire les choses. Microsoft fait un peu ce clair en vous forçant à passer par un couple de niveaux de boîtes de dialogue avant que vous pouvez même ajouter un old school Web de Référence (au moins dans VS2008).
Je pense que la WCF façon plus souple, et la configuration est beaucoup plus descriptif à propos de ce qui se passe.
Aussi, lorsque vous ajoutez de nouveaux WCF composants de vos applications, il est agréable de garder vos paramètres de configuration cohérente, au lieu de mélange et l'appariement entre old school et WCF.
Je pense que l'une des différences est dans le générés automatiquement le code proxy pour le service. Si vous allez avec le service de référence, votre demande fera l'objet de la WCF couche de communiquer. Ce n'est généralement pas un problème, mais si vous écrivez du code qui sera exécuté sur d'autres plates-formes (comme Mono), vous souhaitez utiliser le service web de référence à la place (à partir de Mono ne prend pas en charge la WCF encore).