1

我正在尝试将 Magento 1.7 与 C# 应用程序集成。

当我尝试在 Visual Studio 中使用“添加服务引用”功能时,它会找到服务和所有操作,但是当我单击“确定”时,它不会生成任何内容。即 Reference.cs 文件几乎是空的(只有一行带有命名空间)。

我尝试使用 wsdl.exe 在命令提示符下生成代理,但出现以下错误:

R2718:描述中的 wsdl:binding 必须具有与其引用的 wsdl:portType 相同的一组 wsdl:operations。- 命名空间“urn:Magento”中端口类型“Mage_Api_Model_Server_Wsi_HandlerPortType”的操作“catalogProductAttributeRemove”没有匹配的绑定。

有关 WS-I Basic Profile v1.1 的更多详细信息,请参阅http://www.ws-i.org/Profiles/BasicProfile-1.1.html上的规范。

错误:无法从命名空间“urn:Magento”导入绑定“Mage_Api_Model_Server_Wsi_HandlerBinding”。- 命名空间“urn:Magento”中端口类型“Mage_Api_Model_Server_Wsi_HandlerPortType”的操作“catalogProductAttributeRemove”出现以下语法错误:该操作没有匹配的绑定。检查 Binding 部分中的操作、输入和输出名称是否与 PortType 部分中的相应名称匹配。

然后我尝试使用 Soap UI 加载相同的 wsdl,它工作正常。代理已生成,我可以毫无问题地拨打电话。

原始的 wsdl 文件在这里:https ://gist.github.com/4514723 除了我用示例 url 替换了第 6297 行。

所以我的问题是为什么 Soap UI 能够生成代理并毫无问题地进行调用,但 Visual Studio 不能?我该如何解决?

在此处输入图像描述

4

1 回答 1

2

请参阅以 WS-I 遵从模式生成 Web 服务客户端

您需要修改 Magento 代码以更正app\code\core\Mage\Catalog\etc\wsi.xml.

与其他 .NET/Java 工具相比,SOAP UI 可能更能容忍 WSDL 中的错误。

于 2013-01-18T01:15:06.620 回答