リモート処理での Soapsuds.exe の使用
Soapsuds.exe を使用すると、リモート オブジェクトの呼び出しに必要なメタデータを含むアセンブリまたはソース コードを生成できます。
メモ : |
---|
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)」を参照してください。
関連項目
その他の技術情報
Copyright © 2007 by Microsoft Corporation.All rights reserved.