Поделиться через


Не удалось создать временную ошибку класса (result=1) при выполнении объекта Invoke Web Services

В этой статье показано, как устранить проблему, из-за которой при выполнении объекта Invoke Web Services возникает ошибка "Не удается создать временный класс "Результат=1 ".

Область применения: все версии Orchestrator
Исходный номер базы знаний: 2486643

Симптомы

При выполнении объекта Invoke Web Services в Microsoft System Center Orchestrator или Opalis Integration Server вы получите одну или несколько следующих ошибок в опубликованных данных сводки ошибок :

Не удается создать временный класс (результат=1).
ошибка CS0029: неявно преобразовать тип Opalis.WebServices.DynamicProxy.CustomType в Opalis.WebServices.DynamicProxy.CustomType[]'
ошибка CS0030: неявно преобразовать тип Opalis.WebServices.DynamicProxy.CustomType[]" в "Opalis.WebServices.DynamicProxy.CustomType"

Причина

Известная проблема с WSDL.exe может привести к неправильному созданию класса прокси-сервера, если массив сложного типа содержит элемент, который также является массивом сложного типа и для которого существует только один элемент.

Примечание.

WSDL.exe входит в платформа .NET Framework Майкрософт.

Обходное решение

Доступны три обходных решения:

  • Класс прокси-сервера можно создать вручную с помощью WSDL.exe, а затем изменить класс прокси,в котором тип данных был неуместным образом создан в виде двухмерного массива (например, CustomType[][]), чтобы он был одномерным массивом (например, CustomType[]).

  • Тип данных можно изменить в требуемом языке описания веб-служб (WSDL), чтобы второй необязательный элемент был включен в определение. Это можно сделать, добавив элемент, например следующий пример:

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

  • Сложный тип можно изменить в требуемом WSDL, чтобы атрибуты границы были частью сложного типа, а не частью элемента. (То есть можно переместить minOccurs и maxOccurs атрибуты в сложный тип, а затем удалить их из элемента.)