Considérations à prendre en compte lors de l'utilisation de service Web
Cette section fournit des informations à prendre en considération lors de l'utilisation des services Web.
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.
L'élément any et les attributs 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.
Prise en charge par XLANG/s requise pour les types de paramètres
L'utilisation du type de paramètre de méthode Web non pris en charge par XLANG/s génère 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.
Prévention des erreurs de compilation générées par l'ajout de références Web contenant des mots clés ou identificateurs C#
Lorsque vous utilisez ajouter une référence de service pour ajouter des références de service 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 service / type 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 :
Impossible de générer les fichiers BizTalk. La référence d’objet n’a pas pour valeur une instance d’un objet.
Prise en charge de l'utilisation de tableaux exposés par les services Web
BizTalk Server peut utiliser des tableaux unidirectionnels et en escalier exposés par les services Web autres que les services Web BizTalk. Pour plus d’informations sur l’utilisation des tableaux de services Web, consultez How to Consume Web Service Arrays.
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 ne prend pas en charge de manière native la classe .NET DataSet, mais si vous créez un projet BizTalk contenant une référence Web à un service Web qui expose un tableau d'objets .NET DataSet, vous obtenez 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.
Utilisation de services Web messagerie seule
Lorsque vous utilisez les services Web messagerie seule, tous les noms de corps de messages BizTalk doivent correspondre aux noms de paramètres de 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 :
Échec d'extraction de la partie du message du paramètre "%1".
Pour plus d’informations, consultez How to Consume Web Services in a Messaging Only Scenario.
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é selon que le port d'envoi est 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 d’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é.
Pour plus d’informations sur la boîte de dialogue Propriétés du transport SOAP , consultez la boîte de dialogue Propriétés du transport SOAP, onglet Service web dans les conseils d’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.
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.
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é.
L'ajout d'une référence Web à un service Web utilisé contenant un schéma à plusieurs racines peut générer 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 est générée lors de la compilation du projet. 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 comme paramètres de 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 BizTalk Server console Administration, 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. Pour plus d’informations, consultez la boîte de dialogue Propriétés du transport SOAP, onglet Service web dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.
L'ajout d'une référence Web à un service Web utilisé contenant une méthode Web attendant des paramètres basés sur des génériques peut générer une erreur de compilation.
Si vous ajoutez une référence Web à votre projet pour un service Web qui contient une méthode Web attendant des paramètres basés sur des génériques, tels que des paramètres de type nullable, une erreur est générée 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 d'Ajouter une référence de service
Lorsque vous utilisez ajouter une référence de service pour ajouter des références de service 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 la référence ajouter un service 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.
XSD ne contient pas de nœuds pour les types de paramètres simples.
Lorsque vous ajoutez une référence Web et que la méthode Web a un paramètre qui est un type simple, le XSD généré ne contient pas de nœuds pour ce paramètre. Par contre, le message à parties multiples généré contient une partie de type simple. L'orchestration doit gérer convenablement cette partie de message. S'il s'agit d'une partie de la demande adressée au service Web, attribuez manuellement la valeur à cette partie avec une forme Assignation de message. S'il s'agit d'une partie de la réponse du service Web, accédez manuellement à cette partie dans une forme Expression pour voir la valeur.
Ajouter une référence de service ne prend pas en charge l'élément d'importation WSDL (Web Services Description Language).
Ajouter une référence de service échoue lorsque vous ajoutez des références de service pour le fichier WSDL avec l'élément d'importation.