【问题标题】:SOAP Request Fails when parameter is supplied提供参数时 SOAP 请求失败
【发布时间】:2013-08-15 01:48:13
【问题描述】:

当我使用参数 orderid 调用我的 Soap ASMX 服务时,它失败并显示。有什么想法吗?

System.InvalidOperationException: Request format is invalid: text/xml; charset=utf-8.
   at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

公共类 Service1 : System.Web.Services.WebService {

    [WebMethod(EnableSession=true)]
    [SoapDocumentMethod]

    public Order MyLiteralMethod([XmlElement("MyOrderID")] string orderId)
    {

       //logic
    }
}

提琴手请求标头

Host: localhost:49033
Content-Type: text/xml; charset=utf-8
Content-Length: 369
SOAPAction: "http://tempuri.org/MyLiteralMethod"

提琴手请求正文

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <MyLiteralMethod xmlns="http://tempuri.org/">
      <MyOrderID>sdasd</MyOrderID>
    </MyLiteralMethod>
  </soap:Body>
</soap:Envelope>

进一步的发现 我可以从其他 Web 调试代理工具 [STORM] 调用服务并传递参数。我认为这是特定于提琴手的

问题已解决

似乎是提琴手的问题。进入工具->选项->https ..删除了解密HTTPS流量..重新启动了提琴手。然后重新添加这些选项并重新启动。我不知道这个过程是否解决了问题,但我可以通过 fiddler 提出请求。

【问题讨论】:

  • ASMX 是一项遗留技术,不应用于新开发。 WCF 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum
  • @JohnSaunders 感谢您的提示,但不幸的是,我不得不根据当前的基础架构和业务需求使用该提示

标签: .net web-services soap asmx fiddler


【解决方案1】:

我刚刚在旧的 ASMX 服务上遇到了同样的问题(这与 Fiddler 无关)。解决方案:

您正在使用 SOAP 协议调用您的 Web 服务。我猜你用来调用它的 URL 是:

http://yourserver/service.asmx/methodOfService

但是,当您对服务执行简单的 GET 或 POST 时(例如使用 AJAX 时),必须使用此 URL。 使用 SOAP 时,您必须使用此 URL:

http://yourserver/service.asmx

没有方法名,因为它包含在 SOAP 主体中。

【讨论】:

  • 对我来说就是这样。谢谢
  • 我已经为此奋斗了好几个小时。非常感谢!
  • 这是我的解决方案。
【解决方案2】:

Fiddler 在这里没有什么神奇之处。您最简单的方法是使用 Fiddler 捕获有效请求,然后使用 比较 功能将其与您从 Composer 选项卡发出的无效请求进行比较。

您是否记得将 HTTP 动词设置为 POST

如果删除字符集之前的空格,是否有变化? Content-Type: text/xml;charset=utf-8

【讨论】:

  • 我在提琴手中没有任何工作请求可以比较。我从其他名为 STORM 的工具中得到了请求。那个空间没有任何区别
猜你喜欢
  • 2016-08-15
  • 2021-07-16
  • 1970-01-01
  • 2023-03-17
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多