Fehler beim Generieren eines temporären Klassenfehlers (result=1) beim Ausführen des Invoke Web Services-Objekts nicht möglich

In diesem Artikel können Sie ein Problem umgehen, bei dem beim Ausführen des Invoke Web Services-Objekts der Fehler Unable to generate a temporary class (result=1) (Unable to generate a temporary class (result=1) angezeigt wird.

Ursprüngliche Produktversion: System Center Orchestrator
Ursprüngliche KB-Nummer: 2486643

Symptome

Wenn Sie das Invoke Web Services-Objekt in Microsoft System Center Orchestrator oder Opalis Integration Server ausführen, erhalten Sie einen oder mehrere der folgenden Fehler in den veröffentlichten Daten des Fehlerzusammenfassungstexts :

Eine temporäre Klasse (result=1) kann nicht generiert werden.
Fehler CS0029: Der Typ "Opalis.WebServices.DynamicProxy.CustomType" kann nicht implizit in "Opalis.WebServices.DynamicProxy.CustomType[]" konvertiert werden.
Fehler CS0030: Der Typ "Opalis.WebServices.DynamicProxy.CustomType[]" kann nicht implizit in "Opalis.WebServices.DynamicProxy.CustomType" konvertiert werden.

Ursache

Ein bekanntes Problem mit WSDL.exe kann dazu führen, dass eine Proxyklasse falsch generiert wird, wenn ein Array eines komplexen Typs ein Element enthält, das auch ein Array von komplexem Typ ist und für das nur ein Element vorhanden ist.

Hinweis

WSDL.exe ist im Microsoft-.NET Framework enthalten.

Problemumgehung

Es stehen drei Problemumgehungen zur Verfügung:

  • Sie können die Proxyklasse manuell generieren, indem Sie WSDL.exe verwenden und dann die Proxyklasse, in der der Datentyp unangemessen erstellt wurde, als zweidimensionales Array (z. B. ) ändern, CustomType[][]sodass es sich um ein eindimensionales Array handelt (z. B CustomType[]. ).

  • Sie können den Datentyp in der gewünschten Web Services Description Language (WSDL) ändern, sodass ein zweites optionales Element in der Definition enthalten ist. Dazu können Sie ein -Element wie das folgende Beispiel hinzufügen:

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

  • Sie können den komplexen Typ in der gewünschten WSDL so ändern, dass die Begrenzungsattribute Teil des komplexen Typs sind, anstatt Teil des Elements zu sein. (Das heißt, Sie können die minOccurs Attribute und maxOccurs in den komplexen Typ verschieben und dann aus dem Element entfernen.)