1

Magento 1.7 を C# アプリケーションと統合しようとしています。

Visual Studio で「サービス参照の追加」機能を使用しようとすると、サービスとすべての操作が検出されますが、[OK] をクリックしても何も生成されません。つまり、Reference.cs ファイルはほとんど空です (名前空間が 1 行しかありません)。

コマンド プロンプトで wsdl.exe を使用してプロキシを生成しようとしたところ、次のエラーが発生しました。

R2718: 説明内の wsdl:binding は、それが参照する wsdl:portType と同じ wsdl:operations のセットを持たなければなりません。- 名前空間 'urn:Magento' からの portType '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' からの portType 'Mage_Api_Model_Server_Wsi_HandlerPortType' に対する操作 'catalogProductAttributeRemove' には、次の構文エラーがありました: 操作には一致するバインディングがありません。Binding セクションの操作、入力、および出力の名前が、PortType セクションの対応する名前と一致するかどうかを確認します。

次に、Soap UI を使用して同じ wsdl をロードしようとしましたが、正常に動作しました。プロキシが生成され、問題なく通話できます。

元の wsdl ファイルはhttps://gist.github.com/4514723にあります。 ただし、6297 行を URL の例に置き換えました。

私の質問は、Soap UI がプロキシを生成して問題なく呼び出しを行うことができたのに、Visual Studio ができないのはなぜですか? どうすれば修正できますか?

ここに画像の説明を入力

4

1 に答える 1

2

WS-I 準拠モードで Web サービス クライアントを生成するを参照してください。

の WS-I 準拠の WSDL 定義を修正するには、Magento コードを変更する必要がありますapp\code\core\Mage\Catalog\etc\wsi.xml

SOAP UI は、他の .NET/Java ツールと比較して、おそらく WSDL の間違いに対して寛容です。

于 2013-01-18T01:15:06.620 に答える