リモート アプリケーションの構成
.NET リモート処理インフラストラクチャは、リモート処理を円滑に動作させるために、一定の情報を必要とします。リモート処理が可能な型を構成するには、2 つの方法があります。サーバー コードとクライアント コードで構成メソッドを直接呼び出す方法 (詳細については、「プログラムによる構成」を参照) と、アプリケーションの構成ファイル、Web.config ファイル、または Machine.config ファイルにリモート処理構成セクションを作成する方法 (詳細については、「リモート オブジェクトの構成」を参照) です。どちらの構成プロセスにも長所と短所があるため、どちらの方法を選択するかは、何を優先するかによって決まります。
型をリモート処理可能にするには、リモート処理システムに次の情報を提供する必要があります。
その型に必要なアクティベーションの種類。
その型を記述した完全なメタデータ。
その型に対する要求を処理するために登録されたチャネル。
その型のオブジェクトを一意に識別する URL。サーバー アクティベーションの場合、URI (Uniform Resource Identifier) はその型に固有である必要があります。クライアント アクティベーションの場合は、そのインスタンスに固有の URL が割り当てられます。
リモート サーバー オブジェクトのプロキシを作成したり、リモート サーバー オブジェクトに対するメソッド呼び出しをディスパッチするには、クライアント リモート処理インフラストラクチャとサーバー リモート処理インフラストラクチャの両方がこの情報を取得できる必要があります。クライアントには、両方のインフラストラクチャで利用できる特別な構成もあります。クライアント アプリケーションがクライアントでアクティブ化されるオブジェクトを要求すると、クライアントはそのインスタンスに関連付けられている有効期間を延長するように要求できます。クライアントがなんらかの種類のコールバックを望むときは、コールバックをリッスンするチャネルをクライアント自身が登録する必要があります。それ以外のケースでは、.NET リモート処理システムが互換性のあるクライアント チャネルを自動的に探し、存在する場合はそれを登録します。サーバーは、クライアントでアクティブ化されるオブジェクトに対して既定の有効期間を指定したり、特定のカスタム オブジェクト アクティベータを使用するように指定したりする場合があります。
.NET Framework リモート処理サーバーに対して TCP または HTTP サーバー チャネルを構成しようとしており、サーバー コンピュータに複数のネットワーク インターフェイス カード (NIC) があるか IP アドレスが固定していない NIC (たとえばワイヤレス NIC) が使用されている場合、machineName プロパティを使用するようにチャネルを構成し、.NET Framework リモート処理がサーバー コンピュータを見つけられるようにする必要があります。詳細については、「チャネルおよびフォーマッタの構成プロパティ」の machineName プロパティの説明を参照してください。
リモート処理可能オブジェクトに関するすべての情報をインスタンスが作成される前に提供する場合は、new キーワード (Visual Basic では New) を使用できます。それ以外の場合は、Activator.GetObject または Activator.CreateInstance を使用する必要があります。
メモ : |
---|
上記の構成ファイルには設定が少ししかありませんが、.NET リモート処理で発生するほとんどの問題は、これらの設定の一部が正しくないか、クライアント アプリケーションの構成設定に一致していないことが原因で発生します。名前の入力を間違える、ポートの指定を忘れる、属性を無視するなどの問題がよくあります。リモート処理アプリケーションで問題が発生した場合は、最初に構成設定をチェックしてください。 |
参照
関連項目
概念
メタデータの問題
アクティベーション URL
プログラムによる構成
.NET Framework リモート処理での自動逆シリアル化
チャネルおよびフォーマッタの構成プロパティ
インターネット インフォメーション サービス (IIS) でのリモート オブジェクトのホスト
リモート処理の例 : インターネット インフォメーション サービス (IIS) でのホスト