【发布时间】:2013-12-01 18:59:35
【问题描述】:
我正在使用 SoapUI 测试将由 Java 客户端应用程序使用的 .Net Web 服务。
当我将 Web 服务连接到 SoapUI 但更新 WSDL 位置并调用预设测试脚本之一时,Web 服务失败并显示以下代码
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: urn:mycode:us:gu:das:supplierengagement:v02:SupplierEngagement:/AppointSupplier.
at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
从上面的错误可以看出,问题在于 SOAPAction 参数有一个额外的正斜杠。
我在类上使用以下属性:
<WebService(Namespace:= "urn:mycode:us:gu:das:supplierengagement:v02:SupplierEngagement:AppointSupplier")>
以及方法调用上的以下属性:
<WebMethod(MessageName:="appointSupplierRq")>
根据这些,.Net 正在添加正斜杠。
必须可以删除自动生成的正斜杠。
【问题讨论】:
标签: asp.net vb.net web-services soap soap-client