#c# #.net #xml #soap #asmx
Вопрос:
Пытаюсь вызвать веб-сервис 12-летней давности, файл asmx, soap 1.2 из Net 6.
Я могу добавить ссылку на службу из VS2022 просто отлично, но когда я звоню в службу, я получаю только XSD — часть ответа, а не часть данных.
Я не получаю никаких ошибок. Когда я тестирую asmx-службу, размещенную в моем локальном IIS 10, она работает нормально. Я получаю результаты, которых ожидаю.
Вот что я получаю:
lt;dsTvattstugorIP xmlns="http://etvatt.stockholmshem.se/"gt; lt;xs:schema xmlns:mstns="http://etvatt.stockholmshem.se/dsTvattstugorIP.xsd" xmlns="http://etvatt.stockholmshem.se/dsTvattstugorIP.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="dsTvattstugorIP" targetNamespace="http://etvatt.stockholmshem.se/dsTvattstugorIP.xsd" attributeFormDefault="qualified" elementFormDefault="qualified"gt; lt;xs:element name="dsTvattstugorIP" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"gt; lt;xs:complexTypegt; lt;xs:choice minOccurs="0" maxOccurs="unbounded"gt; lt;xs:element name="TvattstugorIP"gt; lt;xs:complexTypegt; lt;xs:sequencegt; lt;xs:element name="ID" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" type="xs:int"/gt; lt;xs:element name="Adress" type="xs:string" minOccurs="0"/gt; lt;xs:element name="IP" type="xs:string" minOccurs="0"/gt; lt;/xs:sequencegt; lt;/xs:complexTypegt; lt;/xs:elementgt; lt;/xs:choicegt; lt;/xs:complexTypegt; lt;xs:unique name="Constraint1"gt; lt;xs:selector xpath=".//mstns:TvattstugorIP"/gt; lt;xs:field xpath="mstns:ID"/gt; lt;/xs:uniquegt; lt;/xs:elementgt; lt;/xs:schemagt;
Я тоже ожидал этого:
lt;diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"gt; lt;dsTvattstugorIP xmlns="http://etvatt.stockholmshem.se/dsTvattstugorIP.xsd"gt; lt;TvattstugorIP diffgr:id="TvattstugorIP1" msdata:rowOrder="0" diffgr:hasChanges="inserted"gt; lt;IDgt;1lt;/IDgt; lt;Adressgt;Omr.142 Skarpnäcks allé 54lt;/Adressgt; lt;IPgt;7246317lt;/IPgt; lt;/TvattstugorIPgt; lt;TvattstugorIP diffgr:id="TvattstugorIP2" msdata:rowOrder="1" diffgr:hasChanges="inserted"gt; lt;IDgt;2lt;/IDgt; lt;Adressgt;Omr.410 Heliosgata 47lt;/Adressgt; lt;IPgt;IP10.64.1.21:7lt;/IPgt; lt;/TvattstugorIPgt; lt;TvattstugorIP diffgr:id="TvattstugorIP3" msdata:rowOrder="2" diffgr:hasChanges="inserted"gt; lt;IDgt;3lt;/IDgt; lt;Adressgt;Omr.410 Kryssargatan 3lt;/Adressgt; lt;IPgt;IP10.64.1.21:7lt;/IPgt; lt;/TvattstugorIPgt; lt;/dsTvattstugorIPgt; lt;/diffgr:diffgramgt; lt;/dsTvattstugorIPgt;
Это и есть часть данных.
Это мой код вызова:
ServiceReference1.Клиент IntimeSoapClient = новый параметр сервиса1.IntimeSoapClient(ServiceReference1.Интимный клиент.Конфигурация конечной точки.Интимная карта, адрес конечной точки);
var элемент = клиент.ListaInternetbokningsbaraTvattstugor();
Есть какие-нибудь предложения ? Что я упускаю?
с уважением,
Ларс
Комментарии:
1. Решено…. хитрость заключалась в использовании svcutil *.wsdl *.xsd /язык:C# Из командной строки. И иметь как файлы WSDL, так и файлы oooold XSD в одном каталоге, в котором я запустил svcutil