Partager via


Considérations relatives aux classes de proxy cliente de service Web personnalisé

Mise à jour : novembre 2007

Dans les concepteurs de systèmes distribués, les points de terminaison consommateur dans les applications représentent des points de connexion configurables aux points de terminaison fournisseurs. Lorsqu'une instance d'une définition de système composée à partir de ces applications est déployée, les points de terminaison consommateur dans ces applications sont configurés avec les adresses des points de terminaison fournisseurs connectés. Pour plus d'informations, consultez Vue d'ensemble des points de terminaison dans des applications et Vue d'ensemble des systèmes d'applications.

Pour les points de terminaison consommateur de service Web, l'utilisation « dynamiques » de classes de proxy clientes de service Web est nécessaire et elles récupèrent les URL de points de terminaison fournisseurs de service Web connectés à partir des entrées du fichier de configuration de l'application appropriées au moment de l'exécution.

Remarque :

Pour une application qui prend en charge l'implémentation, Visual Studio génère un fichier de configuration pour cette application lorsque vous l'implémentez à partir du diagramme d'application. Le fichier de configuration est inclus dans le cadre du projet d'application dans l'Explorateur de solutions. Pour plus d'informations, consultez Comment : implémenter des applications dans des diagrammes d'application.

Par défaut, le Concepteur d'applications génère des références Web pour ces points de terminaison consommateur de service Web dans les applications ASP.NET, Windows et Office. Ces références Web créent ensuite les classes proxy dynamiques appropriées avec les entrées de fichier de configuration correspondantes.

Remarque :

Si vous utilisez des références Web statiques dans une application ou dans une bibliothèque de classes référencée, ces références Web ne sont pas détectées par le Concepteur d'applications et ne sont pas affichées comme points de terminaison consommateur de service Web, bien qu'elles puissent fonctionner correctement. Il est recommandé de toujours utiliser des références Web dynamiques, même si vous n'envisagez pas de modification de l'URL de service Web au moment du déploiement.

Les sections suivantes contiennent davantage d'informations sur l'utilisation de classes de proxy clientes de service Web personnalisées au lieu de classes proxy dynamiques :

  • Representing Custom Web Service Client Proxy Classes as Web Service Consumer Endpoints

  • Configuration File Entries for Custom Web Service Proxy Client Classes Used with Windows and Office Applications

  • Configuration File Entries for Custom Web Service Proxy Classes Used with ASP.NET Applications

  • Migrating Web References and Custom Proxy Classes from Visual Studio .NET 2003

Représentation des classes de proxy clientes de service Web comme points de terminaison consommateur de service Web

Le Concepteur d'applications prend en charge la conception des points de terminaison consommateur de service Web qui sont implémentés par les références Web. Toutefois, vous pouvez également effectuer une ingénierie à rebours et afficher des classes proxy personnalisées créées manuellement comme points de terminaison consommateur de service Web tant que les entrées appropriées existent dans le fichier de configuration de l'application consommateur (App.config ou Web.config).

Un point de terminaison consommateur de service Web apparaît dans l'application consommateur pour chaque entrée de fichier de configuration que le Concepteur d'applications identifie comme représentant un paramètre d'URL de service Web pour une classe proxy personnalisée. De plus, si l'URL de service Web dans l'entrée de fichier de configuration correspond à l'URL d'un point de terminaison fournisseur de services Web existant dans le diagramme d'application, une connexion apparaît entre le point de terminaison consommateur et le point de terminaison fournisseur de services Web. Si aucun point de terminaison fournisseur de services Web correspondant n'existe, mais l'URL peut être utilisée pour localiser un fichier WSDL valide pour le service Web en ajoutant "?wsdl" ou "?disco" à l'URL, puis, un service Web externe est ajouté au diagramme d'application et se connecte au point de terminaison consommateur de services Web. Si un fichier WSDL ne peut pas être trouvé à l'aide de l'URL, le point de terminaison consommateur de services Web reste non connecté.

Les entrées de fichier de configuration qui représentent les paramètres URL de service Web et leur méthode d'identification par le Concepteur d'applications sont différentes selon les applications ASP.NET et les applications Windows ou Office. Les indications suivantes expliquent comment vous pouvez garantir que les classes proxy personnalisées sont représentées correctement comme points de terminaison consommateur de service Web sur chaque type d'application.

Remarque :

Le non respect de ces indications peut néanmoins produire des classes proxy personnalisées qui fonctionnent correctement au moment de l'exécution ; toutefois, ces classes ne seront pas représentées comme points de terminaison consommateur de service Web, elles ne seront pas connectées dans le diagramme d'application, elles ne seront pas validées pour le déploiement, ni signalées comme points de terminaison dans le rapport de déploiement et ne seront pas disponibles pour la configuration de point de terminaison qui utilise les outils de déploiement disponibles.

Entrées de fichier de configuration pour les classes clientes de proxy de service Web utilisées avec des applications Windows et Office

Pour les classes proxy personnalisées utilisées avec des applications Windows et Office, les paramètres URL de service Web doivent paraître dans une entrée applicationSettings dans le fichier de configuration App.config de l'application consommateur. Vous ne pouvez pas afficher ou modifier ces paramètres à l'aide de l'Éditeur de paramètres et de contraintes, vous devez donc créer ou modifier ces paramètres à l'aide du volet Paramètres accessible en cliquant avec le bouton droit sur le projet d'application Windows ou Office et en consultant les propriétés du projet. Vous devez également désigner ces paramètres comme type WebServiceURL ou String. Pour plus d'informations, consultez Gestion des paramètres de l'application.

Remarque :

La désignation de type WebServiceURL n'apparaît pas dans le fichier de configuration App.config ; toutefois, elle est stockée dans un fichier de configuration associé qui est normalement masqué. Si vous ajoutez manuellement le paramètre au fichier de configuration App.config, vous devez ajouter la désignation de type WebServiceURL ou String comme un paramètre dans le volet Paramètres.

Dans le volet Paramètres, vous pouvez choisir la portée Application ou Utilisateur pour le paramètre si vous le désignez comme type WebServiceURL. La modification de la portée déplace l'entrée vers la section applicationSettings ou userSettings dans le fichier de configuration. Toutefois, si vous choisissez de désigner le paramètre comme un type String, vous devez choisir Application pour la portée.

Conseil :

Lorsque vous spécifiez un paramètre URL de service Web dans le fichier App.config, spécifiez l'emplacement du service Web, pas l'emplacement de la description de service Web ou du fichier WSDL. Pour les services Web basés sur des fichiers .asmx, la description de service Web figure souvent au même emplacement que l'emplacement WSDL. Par conséquent, pour les services Web basés sur des fichiers .asmx, le Concepteur d'applications suppose que l'emplacement de service Web est le même que l'emplacement de fichier WSDL. Si un fichier WSDL est recherché à cet emplacement, un service Web externe fait l'objet d'une ingénierie à rebours dans le diagramme d'application et est connecté à un point de terminaison consommateur de service Web ayant fait l'objet d'une ingénierie à rebours. Si un fichier WSDL valide n'est pas trouvé à cet emplacement, seul le point de terminaison consommateur de service Web fait l'objet d'une ingénierie à rebours.

L'exemple suivant affiche comment une entrée applicationSettings peut apparaître dans un fichier de configuration App.config d'un projet Windows lorsque le paramètre est désigné comme type String:

<applicationSettings>
   <WindowsApplicationName.MySettings>
      <setting name="WindowsApplicationName_Namespace_WebServiceProxyClassName" serializeAs="String"><value>http://WebServiceURL.asmx</value></setting>
   </WindowsApplicationName.MySettings>
</applicationSettings>

Pour les entrées de type WebServiceURL, le nom du paramètre n'a pas besoin d'être le nom de classe proxy. Une entrée de fichier de configuration définie de cette manière et désignée avec le type WebServiceURL ou String dans le volet Paramètres suffit à créer un point de terminaison consommateur de service Web dans une application Window ou Office, même si aucune classe proxy personnalisée n'est associée à l'entrée. La suppression d'un tel point de terminaison supprime l'entrée mais ne supprime pas la classe proxy personnalisée associée.

Entrées de fichier de configuration pour les classes de proxy de service Web personnalisées utilisées avec les applications ASP.NET

ASP.NET n'offre pas de moyen de spécifier qu'une entrée de fichier de configuration représente une URL de service Web. Par conséquent, le Concepteur d'applications essaie de faire correspondre les noms d'entrées de fichier de configuration aux noms de classes proxy. Les instructions suivantes s'appliquent aux entrées de fichier de configuration pour les classes proxy personnalisées utilisées avec les applications ASP.NET :

  • Un point de terminaison consommateur de service Web apparaît uniquement si une classe proxy avec un nom correspondant est trouvée dans le projet d'application consommateur ou dans n'importe quel projet ou assembly référencé.

  • Si la classe proxy personnalisée est utilisée uniquement avec les applications ASP.NET, l'URL du service Web doit apparaître dans une entrée appSettings dans le fichier de configuration Web.config de l'application ASP.NET. Le nom de l'entrée de fichier de configuration doit être le nom de classe proxy qualifié complet. Vous pouvez modifier l'entrée appSettings dans le fichier Web.config à l'aide de l'Éditeur de paramètres et de contraintes. Pour plus d'informations, consultez Éditeur de paramètres et de contraintes et Application des paramètres.

  • Si la classe proxy personnalisée est utilisée avec des applications Windows et Office ainsi que des applications ASP.NET, l'URL du service Web doit apparaître dans une entrée applicationSettings dans le fichier de configuration Web.config de l'application ASP.NET. Le nom de l'entrée de fichier de configuration doit correspondre au nom de classe proxy qualifié complet précédé du préfixe du nom du projet, ce qui est le format par défaut utilisé par les références Web générées automatiquement. Vous pouvez modifier l'entrée applicationSettings dans le fichier Web.config à l'aide de l'Éditeur de paramètres et de contraintes. La section applicationSettings ne prend pas en charge la syntaxe de point (.) pour les noms de paramètres ; utilisez des traits de soulignement (_) à la place.

L'exemple suivant affiche comment une entrée appSettings peut apparaître dans le fichier Web.config :

<appSettings>
   <add key="Namespace.WebServiceProxyClassName" value="https://localhost/WebServiceApplicationName/WebServiceName.asmx"/>
</appSettings>

L'exemple suivant affiche comment une entrée applicationSettings peut apparaître dans le fichier Web.config qui est la même que l'entrée utilisée dans le fichier App.config d'une application Windows ou Office :

<applicationSettings>
   <WindowsApplicationName.MySettings>
      <setting name="WindowsApplicationName_Namespace_WebServiceProxyClassName" serializeAs="String"><value>http://WebServiceURL.asmx</value></setting>
   </WindowsApplicationName.MySettings>
</applicationSettings>

La suppression d'un point de terminaison consommateur de service Web qui représente une classe proxy personnalisée supprime l'entrée de fichier de configuration associée mais ne supprime pas la classe proxy associée. La suppression ou l'attribution d'un nouveau nom à la classe proxy personnalisée ne supprime pas l'entrée de fichier de configuration associée ; toutefois, le point de terminaison consommateur correspondant est supprimé en l'absence d'une classe proxy portant un nom correspondant. L'ajout d'une classe proxy portant un nom correspondant ou l'attribution d'un nouveau nom à une classe proxy existante pour correspondre à l'entrée de fichier de configuration entraîne la réapparition du point de terminaison.

Migration des références Web et des classes de proxy clientes de service Web à partir de Visual Studio .NET 2003

Les entrées de fichier de configuration associées pour les références Web qui sont ajoutées aux projets Office ou Windows à l'aide de Visual Studio .NET 2003 sont stockées dans une section appSettings au lieu de la section applicationSettings. Lors de la mise à niveau d'un projet Windows ou Office Visual Studio .NET 2003 à l'aide de l'Assistant de conversion, les références Web et les classes proxy personnalisées n'effectuent pas une migration automatiquement de la section appSettings vers la section applicationSettings. Pour plus d'informations sur l'Assistant de conversion, consultez Assistant Conversion de Visual Studio.

Cependant, les références Web effectuent une migration automatiquement lorsque les classes proxy sont régénérées, par exemple, lorsque les services Web correspondants changent ou que vous actualisez la référence Web manuellement. Un nouveau paramètre apparaît dans la section applicationSettings pour chaque référence Web et est utilisé par les classes proxy mises à jour. Après avoir mis à jour la section applicationSettings, les points de terminaison consommateur de service Web correspondants et les connexions apparaissent dans le diagramme d'application. Pour plus d'informations, consultez Comment : actualiser les références Web à des services Web dans des diagrammes d'application.

Si vous souhaitez afficher des points de terminaison consommateur de service Web pour les classes proxy personnalisées, vous devez effectuer une migration de ces classes manuellement. Vous pouvez effectuer cette tâche en mettant à jour les classes proxy pour utiliser la section applicationSettings et en ajoutant les paramètres appropriés à l'aide du volet Paramètres disponible via les propriétés de projet d'application Windows ou Office. Pour plus d'informations, consultez Gestion des paramètres de l'application.

Voir aussi

Concepts

Vue d'ensemble des points de terminaison dans des applications

Vue d'ensemble des applications ASP.NET dans les diagrammes d'application

Référence

Classes de proxy clientes de références Web et de service Web personnalisé dans les bibliothèques de classes

Types et prototypes d'applications pour la définition d'applications

Autres ressources

Définition d'applications sur les diagrammes d'application