我尝试通过从 C# 生成 SOAP 消息来访问 Navision 2009 R2 Web 服务。只有当我调用的代码单元的函数没有参数时,我才会得到响应。
codeunit RunJob函数Test示例(无参数,返回硬编码字符串):
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Test xmlns="urn:microsoft-dynamics-schemas/codeunit/runjob">
</Test>
</soap:Body>
</soap:Envelope>
结果我得到了那个字符串......
相同代码单元 RunJob函数RunJob的示例(采用 1 个名为parameter的字符串参数,返回内部服务器错误):
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<RunJob xmlns="urn:microsoft-dynamics-schemas/codeunit/runjob">
<parameter>aaaa</parameter>
</RunJob>
</soap:Body>
</soap:Envelope>
结果我得到了错误(WebResponse wr = request.GetResponse();)而不是所需的信息。
最有趣的是它以前工作过。唯一的变化(就我而言) - 安装了 NAV 2013。
有没有人遇到过同样的问题或知道解决方案?
PS 下面是 RunJob 函数的 Web 服务定义的一部分:
<element name="Runjob">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="parameter" type="string"/>
</sequence>
</complexType>
</element>
<element name="Runjob_Result">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="return_value" type="string"/>
</sequence>
</complexType>
</element>