visual-studio-2010 - 无法使用自动创建的 WSDL 代理类发送 SOAP 请求

标签 visual-studio-2010 soap wsdl

我想从政府网络服务检索订单的状态。

文档文件是 http://www.sii.cl/factura_electronica/factura_mercado/estado_envio.pdf根据文档,WSDL 是 https://maullin.sii.cl/DTEWS/QueryEstUp.jws?WSDL .

为此我尝试了两种方法:

  1. 在vs2010中直接添加引用作为服务引用
  2. 从 wsdl.exe 生成类文件,然后导入

如果我做对了,我必须发送四个变量。

RutCompania、DvCompania、TrackId、 token

我做到了,这是我的代码

QueryEstUpServicePalena.QueryEstUpClient ClienteP= new QueryEstUpServicePalena.QueryEstUpClient();
        var xmlData = ClienteP.getEstUp(RutCompania, DvCompania, TrackId, Token);

        XmlDocument _doc = new XmlDocument();
        _doc.LoadXml(xmlData);    

但无论如何,我只会收到崩溃消息,说无法连接到服务器。 xmlData 始终为 null,就好像我什至没有收到服务器的回复一样。

这是 wsdl.exe 生成的自动代码的一部分(这里是完整的类代码 http://puu.sh/fMPY3/2d9118b053.cs ,注意 RequestNamespace="http://DefaultNamespace",我用服务器 wsdl 完整 url 替换,但仍然失败)。

public string getEstUp(string RutCompania, string DvCompania, string TrackId, string Token) {
    object[] results = this.Invoke("getEstUp", new object[] {
                RutCompania,
                DvCompania,
                TrackId,
                Token});    

服务提供商支持中心很糟糕,他们除了“再次阅读文档文件”之外没有给我任何回复或帮助

我真的不知道该怎么做,因为我使用另一个 WSDL 文件执行此操作并且工作得很好。

编辑:我注意到有效的代理类使用 System.Xml.Serialization.SoapElementAttribute
我现在尝试使用 System.Xml.Serialization.XmlElementAttribute
http://puu.sh/fMRuZ/40bbd9fbda.png 都使用了wsdl.exe,我不知道为什么不同

编辑2:尝试重新制作类文件,但仍然没有结果

Wsdl.exe /out:Proxy.cs /protocol:SOAP https://palena.sii.cl/DTEWS/QueryEstUp.jws?WSDL    

最佳答案

终于找到问题所在了

我已向开发团队提交了投诉,因为这最终是他们的错:

我解决这个问题的研究是采用 WSDL:https://maullin.sii.cl/DTEWS/QueryEstUp.jws?WSDL

  1. 将“http://DefaultNamespace ”替换为“https://maullin.sii.cl/DTEWS/QueryEstUp.jws
  2. 将“use=”encoded”替换为“use=”literal”
  3. 将“http://nogal.sii.cl:3200/WSAUT/services/CrSeed”替换为“https://maullin.sii.cl/DTEWS/QueryEstUp.jws

结果:http://puu.sh/fMZkl/fcd33c1ea7.png (不再出现连接错误) 就这样,解决了,工作了,最后我不知道是jws的错还是wsdl.exe的默认程序的错,但我终于解决了

抱歉,如果有人已经尝试让它工作了

问候

关于visual-studio-2010 - 无法使用自动创建的 WSDL 代理类发送 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463276/

相关文章:

java - 澄清 "web service"的概念

c++ - Winsock 重新定义错误

c# - 当我在 .csproj 文件中使用通配符时,为什么 Intellisense 在 VS2010 中不起作用?

c# - 覆盖 HTTPS 证书

java - 在有效的 SOAP SAAJ 信封中使用默认命名空间

php - 如何在 WSDL 中要求身份验证 Soap header ?

c# - 启动一个MVC4基础模板项目

c++ Visual Studio错误,通过更改类名解决

java - 各种风格的 Web 服务在性能上是否存在差异?

java - 在没有 wsimport 的情况下使用 Java 中的通用 xml Soap Web 服务