2012-01-11 28 views
1

私の友人はruby(http://195.117.148.68:3000/api/wsdl)でWebサービスを作成しました。私の仕事はSilverlightでこのサービスを利用することです。Silverlightはrubyサービスへの参照を追加できません

私は新しいSilverlightプロジェクトを作成し、右クリックして "Add Service Reference ..."をクリックします。それから私はアドレスを与える - >行くとすべてがうまくいます。ただし、生成されたクライアントにはWebサービスのメソッドが含まれていません。問題はなぜですか?

私はこれらのWebサービスから始めています。クロスドメインWCFサービスアプリケーションを使用した実例を作成しましたが、他の方法ではメソッドを生成しません。

いずれかが私を助けることができるなら、私は非常に感謝します。私はある日を過ごしており、これに対する解決策は見つけられません。

答えて

0

問題は、プロキシクラスの生成から発生します。これがプロキシを作成する唯一の方法である場合は、WSDLを調べて、ミックスに何かがないかどうかを確認します。すべてのメソッドが正しく設定されている場合は、より深く掘り下げなければなりません。

また、コマンドラインでWSDL.exeユーティリティを試して、警告やエラーが発生していないかどうかを確認することもできます。これはなぜあなたが失敗しているのかを手がかりにするのに役立ちます。

回避策の一種として、Rubyサービスのインターフェイス(同じメソッド、オブジェクトなど)に準拠した空のサービスを作成し、そのサービスからプロキシを作成することができます。その後、Rubyのアドレスを指し示し、例外を処理します。これは独自のカスタムプロキシオブジェクトの作成を避けるためのちょっとした詐欺です。

最終的な方法は、独自のプロキシオブジェクトを作成することです。利点は、より効率的なプロキシを作成する可能性が高いことです。欠点は、あなた自身が "配管"コードを書いていることです。これは時間がかかります。

+0

警告がありますが、それほど多くはありません。警告は長すぎるので答えは出せませんので、次のコメントに貼り付けます: –

+0

警告:このWeb参照はWS-I Basic Profile v1.1に準拠していません。 R2706:DESCRIPTION内のwsdl:バインディングは、すべてのsoapbind:body、soapbind:fault、soapbind:ヘッダーおよびsoapbind:headerfault要素のuse属性に "literal"の値を使用しなければならない。 –

+0

- 入力要素soapbind:ポートタイプ 'wsdlApiBinding'の操作 'GetTests'の本体を名前空間 'urn:ActionWebService'から取得します。 –

関連する問題