カスタム プロキシの技術サンプル
更新 : 2007 年 11 月
このサンプルでは、RealProxy クラスの拡張について示します。RealProxy を拡張することにより、任意のリモート オブジェクトとの間でやり取りされるメッセージに、ユーザー コードからアクセスできるようになります。このサンプルでは、3 つの実行可能ファイルを作成します。ProxyWithReturnMessage.exe アプリケーションでは、Invoke メソッドをオーバーライドし、メッセージ データを表示します。ProxyWithCustomCasting.exe アプリケーションでは、IFaq および IBaz という 2 つのインターフェイスを使用し、キャスト機能のカスタム化の例を示しています。ProxyWiredToHttpChannel.exe アプリケーションでは、Http チャネルを使用し、RemotingHello サービスの呼び出しを受け取り、転送する方法を示しています。
重要 : |
---|
このサンプルを実行するには、使用しているコンピュータにインターネット インフォメーション サービス (IIS) がインストールされている必要があります。サンプル アプリケーションを実行する場合は、その前に、RemotingHello サービスを IIS に登録してください。 |
サンプルの使用については、次のトピックを参照してください。
コマンド プロンプトを使用してサンプルをビルドするには
コマンド プロンプト ウィンドウを開き、CS サブディレクトリに移動します。
コマンド ラインで「msbuild CustomProxiesCS.sln」と入力します。
メモ : このサンプルでは、3 つのコンソール アプリケーションをビルドします。出力を表示するには、コマンド プロンプトでこれらを起動し、実行する必要があります。
Visual Studio を使用してサンプルをビルドするには
Windows エクスプローラを開き、CS サブディレクトリに移動します。
CustomProxiesCS.sln ファイルのアイコンをダブルクリックして、このファイルを Visual Studio で開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サービスを IIS に登録するには
サービスを DLL にコンパイルし、その DLL をサービスの読み込み元となる bin ディレクトリにコピーします。上記に従って、コマンド プロンプトまたは Visual Studio でサンプルをビルドすると、サービスがコンパイルされ、ProxyWiredToHttpChannel ディレクトリに bin サブディレクトリが作成され、このディレクトリに Hello.dll がコピーされます。
インターネット サービス マネージャを起動し、サーバー ノードの [既定の Web サイト] をクリックします。メニューの [アクション、新規作成、仮想ディレクトリ] をクリックし、[次へ] をクリックして次に進みます。
エイリアスとして「RemotingHello」と入力し、[次へ] をクリックします。
サービスのあるディレクトリを入力します。手順 1 で DLL がコピーされた bin ディレクトリまでの完全パスを入力します。ただし、bin ディレクトリはパスに含めません。
[次へ] をクリックします。表示された既定の設定を受け入れ、もう一度 [次へ] をクリックします。[完了] をクリックします。これでサービスが登録され、[インターネット サービス マネージャ] ウィンドウの [既定の Web サイト] の一覧に表示されます。
サービスを登録したディレクトリに web.config ファイルがあることを確認します。このファイルは、サービスについて記述するファイルです。ポート 80 の HTTP チャネルを使い、ブラウザまたはクライアントをとおしてクライアントからサービスにアクセスしようとすると、このファイルが自動的に読み込まれます。
サンプルを実行するには
次の 3 つの実行可能ファイルのうち、いずれかのファイルが格納されているディレクトリに移動します。
ProxyWiredToHttpChannel.exe
ProxyWithCustomCasting.exe
ProxyWithReturnMessage.exe
各実行可能ファイルは、そのコンソール アプリケーションと同じ名前のディレクトリの下の \bin\Debug サブディレクトリに格納されています。
コマンド ラインで、実行可能ファイルの名前を入力します。ProxyWiredToHttpChannel.exe を実行する場合は、その前に、RemotingHello サービスを前述のように IIS に登録してください。
参照
概念
参照
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Messaging