webmethod的参数值具有空值

时间:2011-03-17 12:30:24

标签: .net soap service

我从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 =''出现了差异?

提前致谢, 哈里什

1 个答案:

答案 0 :(得分:0)

null参数通常表示传入的SOAP无法序列化为该类型。

当您从WSDL创建服务时,您是手动执行此操作还是使用工具?

尝试使用此工具从WSDL创建服务存根: http://www.thinktecture.com/resourcearchive/tools-and-software/wscf 并查看您的实现中的数据协定/框架类是否存在任何差异。然后,您可以将实现代码放入框架中,并尝试使用提供的SOAP XML调用它来测试互操作性。