次の方法で共有


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

このトピックの対象は、既存のアプリケーションとの下位互換性のために残されているレガシ テクノロジに特定されています。新規の開発には、このトピックを適用しないでください。分散アプリケーションは、現在は Windows Communication Foundation (WCF) を使用して開発する必要があります。

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

xse48s01.note(ja-jp,VS.100).gif注 :
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)」を参照してください。

参照

その他のリソース

高度なリモート処理