具有对象数组的 Web 服务调用方法
Web service call method with array of objects
我调用一个 Web 服务方法,将包含对象数组的 class 作为参数。
Inquiry obj = new Inquiry
{
Items = new Test.Items[]
{
new Test.Items{ Id="1"},
new Test.Items{ Id="2"},
new Test.Items{ Id="3"},
}
};
client.TestMethod(ref obj);
如果我只传递 Items 数组中的一项,一切正常。当我通过两个或多个项目时,我得到一个 System.ServiceModel.FaultException
消息:小鬼。线路已经存在。标识字段和值:Import Process Code='',UID='',Line No.='0'
我认为 xml 或复杂类型的 soap 序列化有问题。
<basicHttpBinding>
<binding name="WEBInquiry_Binding">
<security mode="Transport">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
我必须更改代码或配置吗?
谢谢
编辑
FaultException 的代码 属性 具有名称和命名空间成员
姓名=Microsoft.Dynamics.Nav.Types.Exceptions.NavCSideException
命名空间=urn:microsoft-dynamics-schemas/error
原因是您正在向 Imp 导入数据。第 table 行。在 NAV 中,"Line" 类型 table 的主键通常是行号(这只是一个整数 运行 数字)。所以你有三个选择:
- 您需要从代码中填充行号以使记录唯一
- 有人需要更改另一侧的 table 结构以使主键自动递增
- 你必须一个一个地传递你的数组项
我调用一个 Web 服务方法,将包含对象数组的 class 作为参数。
Inquiry obj = new Inquiry
{
Items = new Test.Items[]
{
new Test.Items{ Id="1"},
new Test.Items{ Id="2"},
new Test.Items{ Id="3"},
}
};
client.TestMethod(ref obj);
如果我只传递 Items 数组中的一项,一切正常。当我通过两个或多个项目时,我得到一个 System.ServiceModel.FaultException 消息:小鬼。线路已经存在。标识字段和值:Import Process Code='',UID='',Line No.='0' 我认为 xml 或复杂类型的 soap 序列化有问题。
<basicHttpBinding>
<binding name="WEBInquiry_Binding">
<security mode="Transport">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
我必须更改代码或配置吗? 谢谢
编辑 FaultException 的代码 属性 具有名称和命名空间成员
姓名=Microsoft.Dynamics.Nav.Types.Exceptions.NavCSideException
命名空间=urn:microsoft-dynamics-schemas/error
原因是您正在向 Imp 导入数据。第 table 行。在 NAV 中,"Line" 类型 table 的主键通常是行号(这只是一个整数 运行 数字)。所以你有三个选择: - 您需要从代码中填充行号以使记录唯一 - 有人需要更改另一侧的 table 结构以使主键自动递增 - 你必须一个一个地传递你的数组项