Planification de la consommation de services web
La planification des services Web peut être divisée en deux catégories : la planification de la publication de services Web et la planification de l’utilisation des services Web. Cette rubrique décrit les considérations relatives à l’utilisation des services Web. Pour plus d’informations sur la publication de services Web, consultez Planning for Publishing Web Services1.
Gardez à l’esprit les points suivants lorsque vous créez votre plan :
Utilisation de deux caractères de soulignement dans un nom de paramètre
Les noms de paramètres de méthodes Web ne peuvent pas commencer par « __ » (deux caractères de soulignement). Les noms commençant ainsi peuvent créer des parties de message Web non prises en charge (inutilisables) par XLANG/s.
Les attributs Any Element et anyAttribute ne sont pas pris en charge dans les méthodes Web
Vous ne pouvez pas utiliser l’élément any ou anyAttribute dans le schéma pour une méthode Web.
Utilisation de mots clés XLANG/s
Un nom de service ou de méthode Web ne peut pas être un mot clé XLANG/s. Si vous utilisez un mot clé XLANG/s dans le nom de service ou de méthode Web, vous obtenez une erreur de compilation lorsque vous ajoutez le service Web. Pour obtenir la liste des mots réservés pour la langue XLANG/s, consultez mots réservés XLANG/s (https://go.microsoft.com/fwlink/?LinkId=155765).
Prise en charge XLANG/s requise pour les types de paramètres
L’utilisation de types de paramètres de méthode Web non-XLANG/s pris en charge entraîne des erreurs de compilation. Par exemple, BizTalk Server ne prend pas en charge un paramètre composé d'un tableau unidimensionnel de types de schémas. En outre, BizTalk Server ne prend pas en charge les tableaux multidimensionnels. Pour obtenir la liste des mots que la langue XLANG/s réserve dans BizTalk Server, consultez Mots réservés XLANG/s (https://go.microsoft.com/fwlink/?LinkId=155765).
Éviter les erreurs de compilation causées par l’ajout de références web contenant des mots clés ou des identificateurs C#
Lorsque vous utilisez Ajouter une référence webpour ajouter des références Web aux projets BizTalk, BizTalk Server convertit les types de schémas requis pour appeler chaque méthode Web en schémas. BizTalk Server ajoute ces schémas à Reference.xsd. Si vos schémas contiennent des noms d'élément qui sont des mots clés C# ou que le nom d'élément n'est pas valide en tant qu'identificateur C#, vous risquez d'obtenir une erreur d'exécution. Pour éviter ces erreurs, assurez-vous que le service Web utilisé ne contient pas de noms d'élément qui sont des mots clés C# ou des identificateurs C# non valides.
Plusieurs définitions de type de service/de port ne sont pas prises en charge
BizTalk Server prend en charge l'ajout d'un fichier de service Web avec une définition unique de service et de type de port. Si vous ajoutez un fichier WSDL avec plusieurs définitions de service ou de type de port, vous risquez d'obtenir l'erreur suivante :
Could not generate BizTalk files. Object reference not set to an instance of an object.
Prise en charge de la consommation de tableaux exposés par les services web
BizTalk Server pouvez utiliser des tableaux unidimensionnels et dentétés exposés par des services Web qui ne sont pas BizTalk Server services Web. Pour plus d’informations sur l’utilisation des tableaux de services Web, consultez How to Consume Web Service Arrays (https://go.microsoft.com/fwlink/?LinkId=155766).
Notes
La syntaxe de tableau multidimensionnel n'est pas prise en charge Par exemple, MyArray[1,5].
Notes
BizTalk Server ne prend pas en charge la consommation d’un tableau d’objets DataSet exposés par un service Web. Le sous-service XLANG/s prend en charge en mode natif la classe .NET DataSet, mais si vous créez un projet BizTalk qui contient une référence Web à un service Web qui expose un tableau d’objets .NET DataSet, vous obtiendrez des erreurs lorsque vous tentez de compiler le projet.
Les paramètres de méthode web doivent être sérialisables xml
Tous les paramètres dans un service Web utilisé doivent pouvoir faire l'objet d'une sérialisation XML. Si vous ajoutez une méthode Web qui contient un paramètre non sérialisable XML, vous risquez de recevoir le message d'erreur suivant :
System.Xml.Element doit être sérialisable XML pour être un type de partie de message.
Notes
Les types de données , XmlDocument et DataSet, bien qu’ils ne soient pas sérialisables Xml, sont pris en charge.
Consommation de services web Messaging-Only
Lorsque vous consommez des services Web de messagerie uniquement, tous les noms de partie de corps de message BizTalk Server doivent correspondre aux noms des paramètres de la méthode Web. Par exemple, si la signature du service Web est
WebMethod(MyType1 type1, MyType2 type2)
, le nom du composant doit être type1 et type2, vous pouvez obtenir l’erreur d’exécution suivante :Failed to retrieve the message part for parameter %1
Pour plus d’informations, consultez How to Consume Web Services in a Messaging-Only Scenario (https://go.microsoft.com/fwlink/?LinkId=155767).
Configuration d'un port d'envoi SOAP par programme
Il est possible de définir les propriétés de configuration par programme dans le contexte de message. Vous pouvez définir ces propriétés dans une orchestration ou un composant de pipeline personnalisé, que le port d’envoi soit statique ou dynamique.
Notes
Pour configurer la propriété MethodName pour le port d’envoi SOAP statique par programme, vous devez définir nom de la méthode sur [Spécifier plus tard] sous l’onglet Service web de la boîte de dialogue Propriétés de transport SOAP de la console Administration BizTalk Server.
Pour plus d’informations sur la propriété MethodName , consultez Guide pratique pour définir dynamiquement l’URI d’un service web consommé (https://go.microsoft.com/fwlink/?LinkID=155768).
Règles de propriété
Si la propriété de configuration est définie dans une orchestration ou un composant de pipeline personnalisé dans un pipeline de réception, alors les règles suivantes s'appliquent :
Si un message est envoyé à un port d'envoi statique, la valeur de la propriété est remplacée par la valeur configurée pour ce port d'envoi.
Si un message est envoyé à un port d'envoi dynamique, la valeur de la propriété n'est pas remplacée.
Si une propriété de configuration est définie dans un composant de pipeline personnalisé dans un pipeline d'envoi, alors la règle suivante s'applique :
La valeur n'est pas remplacée, que le message soit envoyé à un port d'envoi statique ou dynamique. En d'autres termes, les composants de pipeline d'envoi remplacent la propriété de configuration, quelle que soit l'origine de sa définition.
Pour plus d’informations sur les composants de pipeline personnalisés, consultez Développement de composants de pipeline personnalisés (https://go.microsoft.com/fwlink/?LinkId=155769).
Pour plus d’informations sur les propriétés de configuration de l’adaptateur d’envoi SOAP, consultez Guide pratique pour définir dynamiquement l’URI d’un service web consommé (https://go.microsoft.com/fwlink/?LinkID=155768).
L’ajout d’une référence web à un service web consommé qui contient un schéma multi-root provoque une erreur de compilation
Si vous ajoutez une référence Web à votre projet pour un service Web dérivé d’une orchestration BizTalk publiée et que l’orchestration contient un schéma avec plusieurs racines, une erreur se produit lorsque le projet est compilé. Si vous ajoutez une référence Web à votre projet qui était dérivé d'une orchestration BizTalk publiée, assurez-vous que l'orchestration ne contient pas de schémas avec plusieurs racines.
Utilisation de TypedDataSets en tant que paramètres pour les méthodes web
Pour prendre en charge l'utilisation de TypedDataSets comme paramètres de méthodes Web, procédez comme suit :
Ajoutez la référence Web à un projet C#, puis générez le proxy.
Créez un port d'envoi SOAP, spécifiez le proxy sur le port d'envoi, puis sélectionnez la méthode.
Dans l'orchestration, définissez un port à liaison tardive et les types de messages. Dans la plupart des cas où aucune promotion de propriété ou accès au champ unique n’est nécessaire, le type peut être défini comme XMLDocument. Sélectionnez les pipelines PassThrough avec ce type.
Dans la console Administration BizTalk Server, sous l’onglet Service web de la boîte de dialogue Propriétés de transport SOAP du port d’envoi SOAP, spécifiez que vous souhaitez utiliser le proxy que vous avez créé. Vous devez également spécifier l'assembly, le type et la méthode.
L’ajout d’une référence web à un service web consommé qui contient une méthode web qui attend Generic-Based paramètres entraîne une erreur de compilation
Si vous ajoutez une référence Web à votre projet pour un service Web qui contient une méthode Web qui attend des paramètres génériques tels que des paramètres nullables, une erreur se produit lors de la compilation du projet. Cela n'est pas pris en charge. Vous devez utiliser une spécialisation explicite pour appeler la classe générique à partir de XLANG/s.
Génération de schéma BizTalk à l’aide de l’ajout d’une référence web
Lorsque vous utilisez Ajouter une référence webpour ajouter des références Web aux projets BizTalk, BizTalk Server convertit les types de schémas requis pour appeler chaque méthode Web en schémas. BizTalk Server ajoute ces schémas à Reference.xsd. Pour vous assurer que l’option Ajouter une référence web génère correctement les schémas BizTalk, les services Web doivent se conformer aux instructions suivantes :
Les méthodes web doivent avoir SoapDocumentMethodAttribute au lieu de SoapRpcMethodAttribute.
Les services et méthodes web doivent utiliser la liaison littérale au lieu d’encodées , comme [SoapDocumentMethod(Use=SoapBindingUse.Literal)].
Les paramètres de méthode web et les types de retour doivent avoir XmlRootAttribute avec une propriété Namespace valide, sauf s’il s’agit de types XSD natifs et du type XmlNode.
Les méthodes web ne doivent pas utiliser les propriétés RequestNamespace et ResponseNamespace dans SoapDocumentMethodAttribute.
Les services Web doivent être conformes à WS-I Basic Profile version 1.1.
L’ajout d’une référence web ne prend pas en charge l’élément d’importation WSDL (Web Services Description Language)
L’ajout d’une référence web échoue lorsque vous ajoutez des références Web pour le fichier WSDL avec l’élément import.