我从wsdl开发了一个.net webservice。预期的肥皂输入有肥皂体(取自浏览器)
<soap:Body>
<InsertRequest xmlns="http://www.xyz.com/MainType/">
<InsertRequest>
<context xmlns="">
...
</context>
<request xmlns="">
...
</request>
</InsertRequest>
</InsertRequest>
</soap:Body>
我的客户发送肥皂请求肥皂,如下所示
<soap:Body>
<InsertRequest xmlns="http://www.xyz.com/MainType/">
<InsertRequest xmlns="">
<context>
...
</context>
<request>
...
</request>
</InsertRequest>
</InsertRequest>
</soap:Body>
我编写了一个虚拟应用程序,它对.net webservice进行HttpWebRequest调用。如果我通过下面有肥皂体的肥皂信封,它就会起作用
<soap:Body>
<InsertRequest xmlns="http://www.xyz.com/MainType/">
<InsertRequest>
<context xmlns="">
...
</context>
<request xmlns="">
...
</request>
</InsertRequest>
</InsertRequest>
</soap:Body>
但我的顾客给了他们发送的肥皂信封,并且它的肥皂体是
<soap:Body>
<InsertRequest xmlns="http://www.xyz.com/MainType/">
<InsertRequest xmlns="">
<context>
...
</context>
<request>
...
</request>
</InsertRequest>
</InsertRequest>
</soap:Body>
当我在虚拟应用程序中使用此soap主体时,我的webmethod InsertRequest(InsertRequest insertRequest)中的参数值为NULL。 任何人都可以让我知道为什么参数是上面的肥皂体获得NULL值?另外,为什么两个Soap消息之间肥皂体的xmlns =''出现了差异?
提前致谢, 哈里什
答案 0 :(得分:0)
null参数通常表示传入的SOAP无法序列化为该类型。
当您从WSDL创建服务时,您是手动执行此操作还是使用工具?
尝试使用此工具从WSDL创建服务存根: http://www.thinktecture.com/resourcearchive/tools-and-software/wscf 并查看您的实现中的数据协定/框架类是否存在任何差异。然后,您可以将实现代码放入框架中,并尝试使用提供的SOAP XML调用它来测试互操作性。