次の方法で共有


チャネルの登録

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

.NET リモート処理システムでは、クライアントが、リモート オブジェクトのメソッドを呼び出すと、チャネル オブジェクトがデータの転送を行います。リモート サービスは複数のチャネルをサポートできます。また、必要条件に最も合致するチャネルの選択は、クライアント アプリケーションが行う必要があります。クライアント構成ファイルでチャネルを指定せず、クライアントがリモート オブジェクトのメソッドを呼び出した場合は、.NET リモート処理システムによって、既定のチャネル実装 (HttpChannel または TcpChannel) のいずれかが読み込まれます (既定のチャネル実装のいずれかがクライアントのネットワーク プロトコルをサポートしている場合)。ただし、クライアントがコールバック機能またはイベントを必要としている場合は、コールバック機能を検出するクライアント チャネルを指定する必要があります。

チャネルの登録には 2 つの方法があります。チャネル テンプレートを宣言してアプリケーションでこのチャネルを参照するか、またはアプリケーションですべてのチャネル情報を直接指定します。Machine.config ファイルの既定のチャネル テンプレートは、ほとんどのアプリケーションに適用できます。このテンプレートは、<channel> タグの ref 属性を使用し "tcp" または "http" のいずれかを指定することによって、<channels> タグ (<application> タグ内の) から参照できます。HttpChannel を使用する場合は port 属性を指定する必要はありませんが、TcpChannel を使用する場合は指定する必要があります。

アプリケーションがサーバー オブジェクトを公開する場合は、クライアント アプリケーションがオブジェクトと通信できるように、チャネルを登録する必要があります。これは、ChannelServices.RegisterChannel メソッドを使用してプログラムによって行うか、構成ファイルにチャネルを登録することによって行います。

アプリケーションがオブジェクトを利用する場合は、サービス オブジェクトが、コンピューター構成ファイルにリストされた既定のクライアント チャネルのいずれかを使用しない限り、オブジェクトにアクセスできるチャネルを登録する必要があります。コールバック機能またはイベントを待機する必要がある場合、これは必須です。

詳細な例については、「リモート処理の例 : チャネル シンク プロバイダー」、<channel> インスタンス要素のトピック、および <channel> テンプレート要素のトピックを参照してください。

チャネル シンク

チャネル シンクを使用すると、開発者はクライアントとリモート サービス間のメッセージのシリアル化と転送をカスタマイズできます。チャネル シンクはシンク プロバイダーによって作成され、クライアント シンク プロバイダーとサーバー シンク プロバイダーの両方を構成ファイルに指定できます。サーバー チャネル シンクは、サーバーとの間でメッセージを送受信するときに呼び出され、<serverProviders> 要素内で指定します。クライアント シンクは、クライアントとの間でメッセージを送受信するときに呼び出され、<clientProviders> 要素内で指定します。

チャネルには、フォーマッタ シンクが必要です。フォーマッタ シンクは、メッセージをシリアル化します。.NET Framework は、バイナリおよび SOAP シリアル化のフォーマッタを備えています。

カスタム フォーマッタが指定されると、.NET リモート処理システムは、すべてのチャネルが適切な順序で指定されると見なします。このため、カスタム フォーマッタを使用するカスタム チャネルを宣言する場合は、チャネル シンク チェインに含むその他のプロバイダーも指定する必要があります。既定のチャネル シンクは追加されません。

参照

処理手順

方法 : 構成ファイルでチャネル テンプレートを作成する

リファレンス

System.Runtime.Remoting.RemotingConfiguration Class

概念

リモート アプリケーションの構成
リモート オブジェクトの設定

その他のリソース

構成ファイルを使用したリモート オブジェクトの登録
.NET Framework リモート処理の概要
.NET Framework リモート処理の概要