リモート処理での Soapsuds.exe の使用

Soapsuds.exe を使用すると、リモート オブジェクトの呼び出しに必要なメタデータを含むアセンブリまたはソース コードを生成できます。

Noteメモ :

Soapsuds.exe は、HttpChannel を使用するリモート オブジェクトでのみ使用できます。

アセンブリを生成するには、次のようなコマンドを入力します。

soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -oa:MyProxy.dll

ここでは、リモート オブジェクトが SomeServer という名前のコンピュータでホストされており、オブジェクトの URL が MyObject.rem であると仮定しています。URL の末尾に ?wsdl が追加されている点に注目してください。これは、Soapsuds.exe を動作させるために必要です。生成された MyProxy.dll は、クライアント アプリケーションで参照して使用できます。

ソース コードを生成するには、次のようなコマンドを入力します。

soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -gc

ここでは、リモート オブジェクトが SomeServer という名前のコンピュータでホストされており、オブジェクトの URL が MyObject.rem であると仮定しています。URL の末尾に ?wsdl が追加されている点に注目してください。これは、Soapsuds.exe を動作させるために必要です。生成された Server.cs は、クライアント アプリケーション プロジェクトに追加できます。これには、クライアント アプリケーションに別途プロキシ アセンブリを同梱する必要がなくなるという利点があります。

出力の種類 (アセンブリまたはソース コード) に関係なく、Soapsuds.exe はラップされたプロキシと呼ばれるものを既定で生成します。ラップされたプロキシは、RemotingClientProxy の派生クラスです。リモート オブジェクトへの URL は、この派生クラスにハードコーディングされます。コマンド ラインで -nowp を指定して、プロキシがラップされないようにすることもできます。ラップされていないプロキシに対して生成されるクラスは、空のクラスになります。ラップされたプロキシとラップされていないプロキシの違いは、リモート オブジェクトのソース コードを 2 回 (-nowp を指定して 1 回、指定しないで 1 回) 生成することによって確認できます (生成された .cs ファイルが上書きされないように、Soapsuds.exe を再度実行する前に必ずファイル名を変更してください)。ラップされていないプロキシを生成する必要が生じるのは、リモート オブジェクトへの URL をハードコーディングすべきではないという理由によります。

Soapsuds.exe のコマンド ライン オプションの詳細については、「Soapsuds Tool (Soapsuds.exe)」を参照してください。

関連項目

その他の技術情報

高度なリモート処理

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.