无论我尝试什么,我都会继续获得MSCRM 4.0抛出的以下异常
请求的输入XML格式无效SetStateITG_glcode:缺少必填字段“EntityId”
这是从WireShark到MSCRM捕获的SoapEnvelope,你可以看到实际上有一个EntityId元素。
<s:Body><ns0:Execute xmlns:ns0="http://schemas.microsoft.com/crm/2007/WebServices" xmlns:ns3="http://microsoft.com/wsdl/types/" xmlns:ns4="http://schemas.microsoft.com/crm/2006/WebServices" xmlns:ns6="http://schemas.microsoft.com/crm/2006/Scheduling" xmlns:ns2="http://schemas.microsoft.com/crm/2006/CoreTypes" xmlns:ns5="http://schemas.microsoft.com/crm/2006/Query" xmlns:ns1="http://schemas.microsoft.com/crm/2007/CoreTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns0:Request xsi:type="ns0:SetStateITG_glcodeRequest"><ns0:OptionalParameters/><ns0:EntityId>f0754ebf-50d2-de11-93aa-000c29af16b6</ns0:EntityId><ns0:ITG_glcodeState>Active</ns0:ITG_glcodeState><ns0:ITG_glcodeStatus>1</ns0:ITG_glcodeStatus></ns0:Request></ns0:Execute></s:Body></s:Envelope>
这里是由Wireshark再次提交给MSCRM的SOAP主体;这条消息来自我写的快速控制台应用程序,我正在通过上面的Web服务客户端进行更新。
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Execute xmlns="http://schemas.microsoft.com/crm/2007/WebServices"><Request xsi:type="SetStateITG_glcodeRequest"><OptionalParameters/><EntityId>c2fcef74-19cf-de11-9376-000c29af16b6</EntityId><ITG_glcodeState>Inactive</ITG_glcodeState><ITG_glcodeStatus>-1</ITG_glcodeStatus></Request></Execute></s:Body>
第二个消息工作;和MSCRM做它想要做的事情。 第一个,除了命名空间前缀,是相同的结构......就我所见。
我错过了一些明显的东西吗? 什么是MSCRM呻吟?由于
答案 0 :(得分:1)
所以这个问题已修复...... 事实证明,MSCRM不喜欢ns0的名称空间前缀 是MSCRM使用基于Xml vlaidator的自定义字符串解析还是荒谬的?