Ошибка генерации прокси с помощью svcutil - PullRequest
1 голос
/ 15 декабря 2010

при попытке сгенерировать прокси из этого WebService (http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl) Я получаю эту ошибку от svcutil:

Ошибка: невозможно получить метаданные из http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

Еслиэто служба Windows (R) Communication Foundation, к которой у вас есть доступ, убедитесь, что вы включили публикацию метаданных по указанному адресу. Для получения справки по включению публикации метаданных см. документацию MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.

* 1010.* URI обмена метаданными WS-метаданных:
http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
Metadata contains a reference that cannot be resolved:

'http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl'.

The content type text/xml; charset=utf-8 of the response message

не соответствует типу содержимого привязки (application / soap + xml; charset = utf-8). При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно. Первые 553 байта ответа были: '
ns1: Client.NoSOAPAction no SOAPAction header! Usalwsc01'.

The remote server returned an error: (500) Internal Server Error.

HTTP GET Ошибка HTTP URI: http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

The document at the url http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

не был распознан как известный тип документа. Сообщение об ошибке от каждого известного типа может помочь вам решить проблему: -Отчет из «XML Schema» имеет вид «Корневой элемент XML-схемы W3C должен быть, а его пространство имен должно быть« http://www.w3.org/2001/XMLSchema'.'. ». Отчет из« DISCO Document »имеет вид« Документ обнаружения по URL-адресу http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl не может бытьнайденный.'.- Формат документа не распознан.- Отчет из «Документа WSDL»: «В документе XML есть ошибка (242, 18).».

  • Префикс пространства имен «impl: wb» не определен.

Я вызвал svcutil со следующими параметрами:

svcutil / n: *, WB.Client /et:WB.Client.WSResultObject / o: Клиент \ WBServices / noConfig http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

У кого-нибудь есть идеи, что я могу сделать, чтобы сгенерировать прокси?Я не могу изменить службу на стороне сервера.

1 Ответ

3 голосов
/ 15 декабря 2010

Проблема в том, что служба использует соглашение об именовании для привязки, которое несовместимо с svcutil.Вы можете обойти это следующим образом:

  • Просмотрите URL-адрес WSDL службы и сохраните WSDL в локальном файле.
  • Затем внесите следующие изменения в файл:
  • Удалите префикс пространства имен из имени, используемого для привязки wsdl: т.е. измените

    name="wb:wsclocks-inboundSoapBinding" на

    name = "wsclocks-inboundSoapBinding"

  • Измените атрибут привязки атрибута wsdl: port, чтобы он соответствовал, а также удалите префикс пространства имен из значения атрибута name, так что это просто wsclocks-inbound .

Затем запустите svcutil <wsdl-file-path> /o:Client\WBServices /noConfig

...