NAV 2018调用已暴露Codeunit的GetItemPic SOAP服务返回找不到错误如何解决
- 修正端点URL编码
从给出的WSDL可以看到服务实际暴露的端点为http://desktop-pll1kkl:11047/DynamicsNAV110/WS/CRONUS%20Danmark%20A%252FS/Codeunit/MSOperations,公司名中的/被二次编码为%252F,不要手动拼接URL,直接复制WSDL中location字段的完整地址作为调用端点即可,避免编码不一致导致的服务找不到问题。 - 校验SOAPAction请求头
GetItemPic方法要求的SOAPAction头必须严格为urn:microsoft-dynamics-schemas/codeunit/MSOperations:GetItemPic,大小写、符号、命名空间出现任何偏差都会触发服务不存在报错。 - 规范SOAP请求体格式
请求体必须包含正确的命名空间和参数结构,示例如下:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:microsoft-dynamics-schemas/codeunit/MSOperations"> <soapenv:Body> <urn:GetItemPic> <urn:itemNo>此处替换为实际物料编码</urn:itemNo> </urn:GetItemPic> </soapenv:Body> </soapenv:Envelope> - 核对端口与服务实例
你核查服务列表用的端口为1234,但WSDL中实际服务端口为11047,确认调用时使用的端口与WSDL标注一致,避免访问错误的NAV服务实例。 - 验证账号权限
确认调用使用的Windows账号/NAV账号具备对应Codeunit的执行权限、目标公司的访问权限,NAV在权限不足时会返回具有误导性的404类报错。
内容的提问来源于stack exchange,提问作者Ashar Farooqi
相关产品推荐
相关产品推荐

