Не может использовать WSDL в VS2010 - PullRequest
1 голос
/ 24 марта 2011

Я пытаюсь использовать следующий WSDL в VS2010, и я сталкиваюсь с ошибками, которые, как представляется, характерны для WSDL.

Я добавляю его в качестве ссылки на веб-службу, и изначально нет прокси-классов или чего-либо ещесозданы - мастер успешно завершает работу, и я получаю .wsdl и файл Reference.map в ~ / Web References / в проекте, однако служба недоступна в коде.

Если я это сделаю, «Обновление Web»Ссылка "на это, я получаю следующую ошибку:

Custom tool error: Unable to import WebService/Schema. The element attribute is not allowed on encoded message parts. The erroneous part is named 'textReturnObject' in message 'singleTextResponse'. (File: Reference.map line 1 column 1)

Если я пытаюсь переименовать" элемент "в" тип ", я получаю целую кучу других проблем:

The custom tool 'MSDiscoCodeGenerator' failed.  Cannot find definition for http://schemas.xmlsoap.org/wsdl/:exampleServiceNameBinding.  Service Description with namespace http://schemas.xmlsoap.org/wsdl/ is missing.
Parameter name: name

Кто-нибудь может пролить свет на это?Я провел WSDL через некоторые онлайн-инструменты, и они отлично его используют - есть ли у VS2010 проблемы с определенными типами WSDL?

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.com/exampleServiceName" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="exampleServiceName" targetNamespace="http://www.example.com/exampleServiceName" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <xsd:complexType name="exampleType">
    <sequence>
      <element minOccurs="1" maxOccurs="1" name="title" type="string" />
      <element minOccurs="1" maxOccurs="1" name="url" type="string" />
      <element minOccurs="1" maxOccurs="1" name="description" type="string" />
    </sequence>
  </xsd:complexType>
  <wsdl:types />
  <wsdl:message name="singleTextRequest">
    <wsdl:part name="intIdentity" type="xsd:integer" />
  </wsdl:message>
  <wsdl:message name="singleTextResponse">
    <wsdl:part name="textReturnObject" element="wsdl:exampleType" />
  </wsdl:message>
  <wsdl:portType name="exampleServiceNamePortType">
    <wsdl:operation name="singleTextAdvert">
      <wsdl:input message="tns:singleTextRequest" />
      <wsdl:output message="tns:singleTextResponse" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="exampleServiceNameBinding" type="tns:exampleServiceNamePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
    <wsdl:operation name="singleText">
      <soap:operation soapAction="urn:xmethods-delayed-quotes#singleText" />
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="exampleServiceNameService">
    <wsdl:port name="exampleServiceNamePort" binding="wsdl:exampleServiceNameBinding">
      <soap:address location="http://www.example.com/exampleServiceName/Server.php" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

У меня вопрос к SO, где у меня возникли проблемы с добавлением ссылки на сервис. В итоге я использовал svcutil в соответствии с рекомендациями, и это решило проблему. Моя ситуация была немного другой, но это стоит попробовать.

.net веб-сервис: невозможно добавить ссылку на сервис, только веб-ссылка

0 голосов
/ 24 марта 2011

Да, VS2010 не может создать ссылку на веб-сервис из некоторых WSDL.Должны написать пользовательскую оболочку для тех.ИЛИ отредактируйте ваш WSDL таким образом, чтобы VS мог его использовать.Например, вы можете удалить ссылки на методы веб-служб для методов, которые вы не планируете использовать, если эти ссылки создают проблемы для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...