Impossible de générer une erreur de classe temporaire (result=1) lors de l’exécution de l’objet Invoke Web Services

Cet article vous aide à contourner un problème où vous recevez l’erreur Impossible de générer une classe temporaire (result=1) lorsque vous exécutez l’objet Invoke Web Services.

Version d’origine du produit : System Center Orchestrator
Numéro de la base de connaissances d’origine : 2486643

Symptômes

Lorsque vous exécutez l’objet Invoke Web Services dans Microsoft System Center Orchestrator ou Opalis Integration Server, vous recevez une ou plusieurs des erreurs suivantes dans les données publiées du texte résumé des erreurs :

Impossible de générer une classe temporaire (result=1).
erreur CS0029 : Impossible de convertir implicitement le type « Opalis.WebServices.DynamicProxy.CustomType » en « Opalis.WebServices.DynamicProxy.CustomType[] »
erreur CS0030 : Impossible de convertir implicitement le type « Opalis.WebServices.DynamicProxy.CustomType[] » en « Opalis.WebServices.DynamicProxy.CustomType »

Cause

Un problème connu avec WSDL.exe peut entraîner la génération incorrecte d’une classe proxy si un tableau de type complexe inclut un élément qui est également un tableau de type complexe et pour lequel un seul élément existe.

Remarque

WSDL.exe est inclus dans Microsoft .NET Framework.

Solution de contournement

Trois solutions de contournement sont disponibles :

  • Vous pouvez générer la classe proxy manuellement à l’aide de WSDL.exe, puis modifier la classe proxy dans laquelle le type de données a été créé de manière inappropriée en tant que tableau à deux dimensions (par exemple, CustomType[][]) afin qu’il s’agit d’un tableau unidimensionnel (par exemple, CustomType[]).

  • Vous pouvez modifier le type de données dans le langage WSDL (Web Services Description Language) souhaité afin qu’un deuxième élément facultatif soit inclus dans la définition. Pour ce faire, ajoutez un élément tel que l’exemple suivant :

    <xs:element minOccurs="0" name="dummyElement" nillable="true" type="xs:string"/>

  • Vous pouvez modifier le type complexe dans le WSDL souhaité afin que les attributs de limite fassent partie du type complexe au lieu de faire partie de l’élément. (Autrement dit, vous pouvez déplacer les minOccurs attributs et maxOccurs vers le type complexe, puis les supprimer de l’élément.)