Condividi tramite


Impossibile generare una classe temporanea (result=1) durante l'esecuzione dell'oggetto Invoke Web Services

Questo articolo consente di risolvere un problema a causa del quale viene visualizzato l'errore Unable to generate a temporary class (result=1) quando si esegue l'oggetto Invoke Web Services.

Si applica a: Tutte le versioni di Orchestrator
Numero KB originale: 2486643

Sintomi

Quando si esegue l'oggetto Invoke Web Services in Microsoft System Center Orchestrator o Opalis Integration Server, si ricevono uno o più degli errori seguenti nei dati pubblicati nel testo di riepilogo degli errori pubblicato:

Impossibile generare una classe temporanea (result=1).
errore CS0029: Impossibile convertire in modo implicito il tipo 'Opalis.WebServices.DynamicProxy.CustomType' in 'Opalis.WebServices.DynamicProxy.CustomType[]'
errore CS0030: Impossibile convertire in modo implicito il tipo 'Opalis.WebServices.DynamicProxy.CustomType[]' in 'Opalis.WebServices.DynamicProxy.CustomType'

Causa

Un problema noto con WSDL.exe può causare la generazione errata di una classe proxy se una matrice di tipo complesso include un elemento che è anche una matrice di tipo complesso e per cui esiste un solo elemento.

Note

WSDL.exe è incluso in Microsoft .NET Framework.

Soluzione alternativa

Sono disponibili tre soluzioni alternative:

  • È possibile generare manualmente la classe proxy usando WSDL.exe e quindi modificare la classe proxy in cui il tipo di dati è stato creato in modo inappropriato come matrice bidimensionale (ad esempio, CustomType[][]) in modo che si tratti di una matrice unidimensionale , ad esempio CustomType[].

  • È possibile modificare il tipo di dati nel linguaggio WSDL (Web Services Description Language) desiderato in modo che nella definizione sia incluso un secondo elemento facoltativo. A tale scopo, aggiungere un elemento come l'esempio seguente:

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

  • È possibile modificare il tipo complesso nel file WSDL desiderato in modo che gli attributi limite facciano parte del tipo complesso invece di essere parte dell'elemento. È quindi possibile spostare gli minOccurs attributi e maxOccurs nel tipo complesso e quindi rimuoverli dall'elemento .