Share via


<channel> 要素 (インスタンス)

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

アプリケーションがリモート オブジェクトと通信するために使用するチャネルを構成します。チャネル テンプレートではない新しいチャネルを宣言および構成することもできます。この要素は、アプリケーション構成ファイルとマシン構成ファイルに出現する可能性があります。

Schema Hierarchy

<configuration>
  <system.runtime.remoting> 要素
    <application> 要素
      <channels> 要素 (インスタンス)
        <channel> 要素 (インスタンス)

構文

<!-- Either reference a channel template --> 
<channel  
   ref="channelRef" 
   displayName="name"
   port="port"
/>
<!-- Or declare a particular channel instance -->
<channel 
   type="ChannelType, ChannelAssembly"
   displayName="name"
   port="port"
   customChannelProperty="propertyValue"
/>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明

ref

省略可能属性

クライアントが使用するために登録するチャネル テンプレートの id を示します。ref 属性を指定する場合は、type 属性を指定する必要はありません。

.NET Framework リモート処理には、"http"、"tcp"、および "ipc" という 3 つのチャンネル実装が用意されています。チャネル実装を選択する方法の詳細については、「チャネルの選択」を参照してください。

displayName

省略可能な属性です。

このアプリケーションに登録されているチャネルのリストを作成するために、.NET Framework 構成ツールによって使用されます。この属性は、.NET Framework リモート処理システムによっては使用されません。

type

省略可能属性

チャネルの完全型名と、チャネルの実装があるアセンブリの名前を示します。格納しているアセンブリがグローバル アセンブリ キャッシュ内にある場合は、バージョン、カルチャ、および公開キーの情報がすべて含まれます。この属性は、ref 属性を指定しない場合に指定する必要があります。

.NET Framework リモート処理には、"http"、"tcp"、および "ipc" という 3 つのチャンネル実装が用意されています。チャネル実装を選択する方法の詳細については、「チャネルの選択」を参照してください。

port

省略可能な属性です。

適切なポート属性を示します。たとえば、チャネルがポートで待機するように指定するときは、ここでポート属性を指定できます。TcpChannel などの一部のチャネルでは、ポート指定は必須です。その他の HttpChannel などのチャネルの場合は、既定のポートがあるため、この属性の指定は必須ではありません。クライアントの構築時にポートとして 0 (ゼロ) を指定すると、.NET Framework リモート処理システムによって適切なポートが選択されます。クライアント チャネル用のポートを指定しない場合、クライアントがリモート オブジェクトからのコールバック関数を受け取ることができなくなります。

portName

IpcChannel または IpcServerChannel の必須属性。サーバーが公開するポートの名前を指定します。

<customChannelProperty>

省略可能属性

サポートされているカスタム チャネル プロパティを示します。チャネルがサポートするチャネル プロパティをいくつでも指定できます。カスタム チャネル プロパティは、属性と値のペアで指定します。次に例を示します。

<channel 
   ref="CustomChannel" 
   port="61000"   customProperty="PropertyValue" 
/>

useIpAddress

公開する URL で、コンピューター名の代わりに IP アドレスを使用するかどうかを指定する Boolean 値 (true または false)。たとえばワイヤレス ネットワークでは、ネットワーク内を移動するポータブル コンピューターの IP アドレスがシャッフルされる場合があります。この値に false を指定すると、IP アドレスの代わりにコンピューター名を使用するため、リモート接続がローミング中に切断されなくなります。既定値は true です。この値は、プロパティがサーバー チャネルで使用されるとき、machineName プロパティによってオーバーライドできます。

machineName

現在のチャネルで使用されるコンピューターの名前を指定する文字列。サーバー チャネルで使用されている場合、useIpAddress をオーバーライドします。

   一般的には、コンピューターのドメイン ネーム システム (DNS) 名を使用することが望ましいですが、特定のネットワーク インターフェイス カード (通常はワイヤレス NIC) の IP アドレスが頻繁に変更される場合は、machineName を使用して、リモート処理が DNS 経由でコンピューターを見つけられるようにアプリケーションを構成する必要があります。しかし、コンピューター名解決に時間がかかりすぎたり解決できなかったりする場合、コンピューターが物理的または仮想的に複数の NIC を持つときは (たとえば、ダイヤルアップ接続や VPN ネットワーク アダプターの場合)、現在接続に使用されている NIC の IP アドレスを machineName プロパティに設定する必要があります。

子要素

要素 説明

<serverProviders>

サーバー側のチャネル シンク呼び出しチェーンに挿入されるシンクのシンク プロバイダーを指定します。プロバイダーが指定されている場合は、それらのプロバイダーによって、チャネルの既定値が完全にオーバーライドされます。<channel> 要素内に 1 回だけ指定できます。

<clientProviders>

クライアント側のチャネル シンク呼び出しチェーンに挿入されるシンクのシンク プロバイダーを指定します。プロバイダーが指定されている場合は、それらのプロバイダーによって、チャネルの既定値が完全にオーバーライドされます。<channel> 要素内に 1 回だけ指定できます。

親要素

要素 説明

application

アプリケーションが使用および公開するリモート オブジェクトに関する情報を指定します。

channels

アプリケーションがリモート オブジェクトと通信するために使用するチャネルを指定します。この要素では、指定したアプリケーションで使用できるように、チャネル テンプレートを構成するか、新しいチャネルを宣言します。

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。

system.runtime.remoting

リモート オブジェクトおよびチャネルに関する情報を指定します。

解説

システムによって提供される HttpChannelTcpChannel、および IpcChannel は、マシン構成ファイルに指定されています。これらの id 属性は、それぞれ "http"、"tcp"、および "ipc" です。

次の構成ファイルは、クライアント アプリケーションに対してリモート型の場所を宣言しています。また <channels> インスタンス要素を使用することにより、サーバー オブジェクトへの接続に適したポートの検索や、既定の HttpChannel の使用を、.NET Framework リモート処理システムに対して指示しています。

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemoteType, RemoteAssembly"
               url="http://computername:8080/RemoteType.rem"
            />
         </client>
         <channels>
            <channel 
               ref="http" 
               port="0"
            />
         </channels>
      </application>
   </system.runtime.remoting>
</configuration>

参照

リファレンス

リモート処理設定スキーマ
HttpChannel
HttpClientChannel
HttpServerChannel
TcpChannel
TcpClientChannel
TcpServerChannel
IpcChannel
IpcClientChannel
IpcServerChannel

ビルド日:2010-02-13