gpt4 book ai didi

c# - 将 WSDL 添加到项目只会创建类型,不会进入 app.config 并引发三个错误

转载 作者:太空狗 更新时间:2023-10-29 21:38:09 24 4
gpt4 key购买 nike

我正在尝试将服务引用添加到我的 (.NET 4.6) 项目。
当我选择 Add Service Reference 并添加 WSDL 的 URL 时,我可以看到它已被正确发现: enter image description here

我已经取消选中 Reuse types in all referenced assemblies 如下所示: enter image description here

但是当我点击 OK 时,我在 Error List 窗口中收到三个警告:

警告 1 自定义工具警告:无法导入 wsdl:portType详细信息:运行 WSDL 导入扩展时抛出异常:System.ServiceModel.Description.XmlSerializerMessageContractImporter错误:无法将“System.Xml.Serialization.StructMapping”类型的对象转换为类型“System.Xml.Serialization.MembersMapping”。错误源的 XPath://wsdl:definitions[@targetNamespace=' http://bik.pl/cc/big ']/wsdl:portType[@name='BIG']

警告 3 自定义工具警告:无法导入 wsdl:port详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath://wsdl:definitions[@targetNamespace=' http://bik.pl/cc/big ']/wsdl:binding[@name='BIGBinding']错误源的 XPath://wsdl:definitions[@targetNamespace=' http://bik.pl/cc/big ']/wsdl:service[@name='BIG']/wsdl:port[@name='BIG']

警告 2 自定义工具警告:无法导入 wsdl:binding详细信息:导入 wsdl:binding 所依赖的 wsdl:portType 时出错。wsdl:portType 的 XPath://wsdl:definitions[@targetNamespace=' http://bik.pl/cc/big ']/wsdl:portType[@name='BIG']错误源的 XPath://wsdl:definitions[@targetNamespace=' http://bik.pl/cc/big ']/wsdl:binding[@name='BIGBinding']

我在导入时尝试了不同的选项,但我总是遇到这些错误。
我已经使用 www.wsdl-analyzer.com 验证了 WSDL但它没有显示错误: enter image description here

这是质量报告:https://www.wsdl-analyzer.com/qualityReport/show/1784995829?version=1

SoapUI 正确显示所有操作,我可以从 SoapUI 执行这些操作,但我需要在 Visual Studio 中添加对我的项目的引用。

下面是 WSDL 和 XSD 的链接:

https://wasstt.infomonitor.pl/39D97477-0709-455f-A7C8-6498B600AC5A/ws/BIG/WEB-INF/wsdl/dluznik.wsdl

https://wasstt.infomonitor.pl/39D97477-0709-455f-A7C8-6498B600AC5A/ws/BIG/WEB-INF/wsdl/dluznik.xsd

如何将此 WSDL 导入到我的项目中?我无法修改该 WSDL 的结构,因此我必须按原样使用它。

编辑:我已经安装了 XMLSpy 并在其中打开了 WSDL。打开后我收到消息说 WSDL 有效。

最佳答案

可能问题已经以不同的方式解决(其他技术,退出契约(Contract)),但如果您仍然感兴趣,问题是 wsdl.exe 不支持元素定义中的循环引用。

<xs:element name="raport-z-rej-zap">
<xs:complexType>
<!-- ... -->
<xs:element ref="tns:raport-z-rej-zap" minOccurs="0" maxOccurs="unbounded" />
<!-- ... -->
</xs:complexType>
</xs:element>

您只需要定义命名复杂类型而不是匿名:

<xs:element name="raport-z-rej-zap" type="tns:Raport-z-rej-zap">
<xs:annotation>
<xs:documentation>Struktura raportow z Rejestru Zapytan (ref. 6.6)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Raport-z-rej-zap">
<xs:choice>
<xs:sequence>
<xs:element name="naglowek" type="tns:TypNaglowekRaportu" />
<xs:element name="pytajacy" type="tns:TypDanePodmiotuPytajacego" minOccurs="0" />
<xs:element name="dane-zap" type="tns:TypDaneZapytaniaZRejZap" minOccurs="0" />
<xs:element name="uwagi-i-ostrz" type="tns:TypUwagOstrzezen" minOccurs="0" />
<xs:element name="podmiot" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="dane-podm" type="tns:TypDanePodmiotu" />
<xs:element name="tresc-rap" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Tresc uprzednio przekazanego raportu</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="tns:raport-fin" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="tns:raport-dok" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="raport-z-rej-zap" type="tns:Raport-z-rej-zap" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="suma-kontr" type="tns:TypSumaKontrolna" minOccurs="0" />
</xs:sequence>
<xs:element name="blad-przetw" type="tns:TypBladPrzetw" />
<xs:element name="blad-struktury" type="tns:TypKomunikatAdministracyjny">
<xs:annotation>
<xs:documentation>zadanie operacji na bazie danych odrzucone z powodu bledow struktury (rezultat = blad struktury).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="certyfikat" type="tns:TypRaportCertyfikat" />
</xs:choice>
</xs:complexType>

或者从wsdl元素中删除:

<wsdl:operation name="pobranie-raportu-z-rej-zap">

据我所知,您不能调用此操作 - 它是为 BIG Infomonitor 使用保留的。

关于c# - 将 WSDL 添加到项目只会创建类型,不会进入 app.config 并引发三个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40419144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com