Share via


<channel> 要素 (テンプレート)

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

アプリケーションがリモート オブジェクトと通信したり、リモート オブジェクトに対する要求を待機したりするために指定および構成できるチャネル テンプレートを指定します。使用するためにチャネルを登録できる場所ならどこででも、そのインスタンス チャネル要素の id 属性を、このテンプレートの ref 属性に設定できます。この要素は、アプリケーション構成ファイルとマシン構成ファイルに出現する可能性があります。

Schema Hierarchy

<configuration>
  <system.runtime.remoting> 要素
    <channels> 要素 (テンプレート)
      <channel> 要素 (テンプレート)

構文

<channel  
   id="channelID" 
   type="ChannelType, ChannelAssembly"
   displayName="displayName"
   customChannelProperty="customChannelValue"
   <!-- Available only to client configurations -->
   delayLoadAsClientChannel="true|false"
/>

属性と要素

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

属性

属性 説明

customChannelProperty

省略可能属性

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

<channel id="CustomChannel" type="Namespace.CustomChannel, CustomChannels" customProperty="PropertyValue"/>

delayLoadAsClientChannel

省略可能属性

クライアントがチャネルをアプリケーション用に登録していない場合に、対象のチャネルを読み込むかどうかを示します。この値は Boolean 値で、クライアントの動作にだけ影響します。値が true の場合は、.NET Framework リモート処理が実行時に該当チャネルを調べて、そのチャネルがリモート アクティベーション URL に指定されている特定のプロトコル スキームを使用したクライアント接続をサポートしているかどうかを確認することを示します。値が指定されない場合の既定値は false です。

displayName

省略可能属性

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

id

必須属性

チャネルの登録時にアプリケーションがそのチャネルを識別するために使用する文字列を指定します。このチャネル テンプレートを参照するには、この属性の値として、インスタンス チャネル要素の ref 属性の値を指定します。

子要素

要素 説明

<serverProviders>

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

<clientProviders>

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

親要素

要素 説明

channels

アプリケーションがリモート オブジェクトと通信するために使用するチャネル テンプレートを指定します。この要素で宣言したチャネルは、チャネルが登録される場所なら、どこからでも参照できます。

configuration

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

system.runtime.remoting

ASP.NET 構成セクションのルート要素を指定します。

解説

チャネル テンプレートは、コンピューターの構成ファイル、アプリケーション ファイル、または RemotingConfiguration.Configure() の呼び出しによって読み込まれるその他のファイルで指定できます。

次の構成ファイルは、<channels> テンプレート要素を使用して、id が "httpbinary" の HttpChannel を宣言し、リモート呼び出しをシリアル化する BinaryClientFormatterSink を使用しています。次に、<application> 要素内の <channel> インスタンス要素に ref="httpbinary" と指定することにより、クライアント アプリケーションが特定のチャネル構成を使用するように要求しています。最後に、"propsetter" チャネル シンク プロバイダーを追加し、このチャネル シンク プロバイダーによって使用されるカスタム構成要素をいくつか渡します。type 属性を使用してグローバル アセンブリ キャッシュにあるアセンブリ内の型を指定するには、バージョン、カルチャ、および公開キーの情報を含む完全な型情報が必要です。次の例の type 属性では、簡略にするためにこの情報が省略されています。

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, PropsSink" 
            />
         </clientProviders>
      <channels>
         <channel 
            type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, ...." 
            id="httpbinary"
         >
            <clientProviders>
               <formatter                   type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, ...."
               />
            </clientProviders>
         </channel>
      </channels>
      <application>
         <channels>
            <channel ref="httpbinary">
               <clientProviders>
                  <provider 
                     ref="propsetter" 
                     username="somename" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" someProperty="xyz" />
                     <endpoint url="contoso.com:9001" someProperty="123" />
                  </provider>
               </clientProviders>
            </channel>
         </channels>
         <client>
            <wellknown 
               url="http://computername:80/RemoteType.rem"
               type="RemoteType, RemoteAssembly"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

参照

リファレンス

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

ビルド日:2010-02-13