我有一个由Axis客户端调用的.NET Web服务;但是,由于某些原因,我收到的所有参数值都为空。客户端不传递SOAPAction属性,因此我需要将Routing设置为RequestElement,如下所示:
[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]
我将命名空间设置为与调用者相同。
[WebService(Namespace = "http://aaa.com")]
正在调用SOAP请求中指定的适当方法,但仍然所有参数都为空。
我的方法看起来像
[WebMethod(MessageName = "method1")]
public string method1(int param1, string param2, string param3)
这是请求的样子
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:method1 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://aaa.com">
<param1 href="#id0"/>
<param2 xsi:type="xsd:string">value</param2>
<param3 xsi:type="xsd:string">value</param3>
</ns1:method1>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">11</multiRef>
</soapenv:Body>
</soapenv:Envelope>
但是,在方法中,我对所有字符串都为null,对于整数字符为0 ..任何想法?