Проблема с генерацией классов при подключении к web сервису soap из Visual Studio

Рейтинг: 1Ответов: 0Опубликовано: 08.02.2023

Возникла необходимость создать клиента для web-сервиса (сервис чужой). При добавлении через стандартный механизм в VS 2019 возникает ошибка " Ошибка специального инструмента: Не удалось создать код для ссылки на службу "UnoService". Подробности см. в других сообщениях об ошибках и предупреждениях. WebApplication4 ....WebApplication4\WebApplication4\Connected Services\UnoService\Reference.svcmap "

Пробовал также через утилиту svcutil. Получаю следующую ошибку

Идентификатор URI: http://url?wsdl/Language=c#

    Метаданные содержат неразрешимую ссылку: "http://url?wsdl/Language=c#".

    Сервер вернул недопустимое сообщение об ошибке SOAP. Дополнительные сведения см. в описании внутреннего исключения.

    Отсутствует обязательное значение атрибута xml:lang.


Ошибка HTTP GET
    URI: http://url?wsdl/Language=c#

    Возникла ошибка при скачивании "http://url?wsdl/Language=c#".

    Сбой запроса с сообщением об ошибке:
--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <faultcode>SOAP-ENV:Server</faultcode>
            <faultstring>Empty request</faultstring>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
--.

то есть прокси-классы в Reference.cs не генерятся

// <auto-generated>
//     Этот код создан программой.
//     Исполняемая версия:4.0.30319.42000
//
//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
//     повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------

namespace WebApplication4.UnoService {
    
}

В SOAP UI запрос отрабатывает нормально, ответ возвращается, но тест проваливает ошибкой

com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.SchemaComplianceAssertion@22dc5164
line 9: Element not allowed: Document@http://url in element documents
line 18: Element not allowed: Document@http://url in element documents
com.eviware.soapui.impl.wsdl.teststeps.assertions.soap.NotSoapFaultAssertion@752d4c40

Подскажите, куда копать, на что обратить внимание? p.s. С другими сервисами проблем нет

Попробовал сгенерить из файла .wsdl

PS ...\WebApplication4> svcutil "c:\temp\UNO.wsdl"/Language:C#
Программное средство Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, версия 4.8.3928.0]
c Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Ошибка: Не удается импортировать wsdl:portType
Подробности: Сгенерировано исключение во время запуска расширения импорта WSDL: System.ServiceModel.Description.XmlSerializerMessageContractImporter
Ошибка: Тип, на который указывает ссылка, "http://schemas.xmlsoap.org/soap/encoding/:Array", допустим только для кодированных SOAP.
XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='http://url']/wsdl:portType[@name='UNOPort']


Ошибка: Не удается импортировать wsdl:binding
Подробности: Ошибка импорта wsdl:portType, от которого зависит wsdl:binding.
XPath к wsdl:portType: //wsdl:definitions[@targetNamespace='http://url']/wsdl:portType[@name='UNOPort']
XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='http://url']/wsdl:binding[@name='UNOBinding']


Ошибка: Не удается импортировать wsdl:port
Подробности: Ошибка импорта wsdl:binding, от которого зависит wsdl:port.
XPath к wsdl:binding: //wsdl:definitions[@targetNamespace='http://url']/wsdl:binding[@name='UNOBinding']
XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='http://url']/wsdl:service[@name='UNOService']/wsdl:port[@name='UNOPort']

Ответы

Ответов пока нет.