HttpClientChannel クラス

メッセージを送信するために HTTP プロトコルを使用するクライアント チャネルの実装を提供します。

この型のすべてのメンバの一覧については、HttpClientChannel メンバ を参照してください。

System.Object
   System.Runtime.Remoting.Channels.BaseChannelObjectWithProperties
      System.Runtime.Remoting.Channels.BaseChannelWithProperties
         System.Runtime.Remoting.Channels.Http.HttpClientChannel

Public Class HttpClientChannel
   Inherits BaseChannelWithProperties
   Implements IChannelSender, IChannel
[C#]
public class HttpClientChannel : BaseChannelWithProperties,
   IChannelSender, IChannel
[C++]
public __gc class HttpClientChannel : public
   BaseChannelWithProperties, IChannelSender, IChannel
[JScript]
public class HttpClientChannel extends BaseChannelWithProperties
   implements IChannelSender, IChannel

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

HttpClientChannel は、SOAP プロトコルを使用して、リモート オブジェクトへメッセージを転送します。既定では、すべてのメッセージは、SOAP フォーマッタを経由して渡されます。そのフォーマッタでメッセージは XML に変換された後にシリアル化され、要求する SOAP ヘッダーがストリームに追加されます。バイナリ フォーマッタを指定することもできます。この場合は、バイナリ データ ストリームが生成されます。その後、HTTP プロトコルを使用して、データ ストリームを対象の URI に転送します。

チャネルは、アプリケーション ドメイン、プロセス、コンピュータなどのリモート処理境界を超えて、アプリケーション間でメッセージを転送します。このような転送には、着信と発信の両方があります。

チャネルの両端に共通言語ランタイムがある場合、境界の両側のクライアント チェインとサーバー シンク チェインを接続するために、セッションはこの両端の間で作成されます。クライアント チャネルは、クライアント コンテキスト シンク チェインの末尾に配置されます。サーバー チャネルは、サーバー コンテキスト シンク チェインの先頭に配置されます。メッセージは、クライアント チャネルに配信され、このチャネルを経由した後、 HttpServerChannel によって受信されます。その後、サーバー チャネルがメッセージを逆シリアル化し、最初のサーバー コンテキスト シンクに配信します。

IChannel 実装は、チャネル構成プロパティを使用して、実行時にチャネルを構成します。チャネル プロパティは、構成ファイルで指定したり、 IDictionary 内でプログラムによって指定したりできます。構成ファイルでは、すべての値が文字列によって表されますが、 IDictionary プロパティをプログラムによって構築する場合は、値型をネイティブな値または文字列で指定できます。

現在のチャネルに対して指定できるチャネル構成プロパティを次の表に示します。

プロパティ 説明
name チャネルの名前を示します。このプロパティは、 GetChannel を呼び出したときに、指定したチャネルを取得するために使用します。このプロパティが設定されていない場合、システムの既定値は "http" になります。複数の HttpChannel を登録する場合は、各チャネルに一意の名前を付ける必要があります。名前を無視し、名前付け規則にも違反しないようにする場合は、このプロパティに Empty 文字列 ("") を設定します。システム上に、名前が String.Empty のチャネルはいくつあってもかまいません。
priority このチャネルに割り当てられている優先順位を表す整数。高い数値は、最初に接続に使用される可能性が高いことを示します。既定の優先順位は 1 で、負の数も指定できます。
clientConnectionLimit 指定したサーバーで同時に開くことができる接続の数を示す整数。既定値は 2 です。
proxyName プロキシ コンピュータの名前。
proxyPort プロキシ ポートを指定する整数。
machineName 現在のチャネルで使用するコンピュータ名を指定する文字列。チャネル データ オブジェクトで指定したコンピュータ名をオーバーライドします。
timeout 要求がタイムアウトになるまでのミリ秒単位の待機期間。-1 は無限のタイムアウト期間を示します。
allowAutoRedirect サーバー リダイレクトの自動処理が有効かどうかを示す値を取得または設定します。
credentials クライアントの ID を表す ICredential 実装を取得または設定します。
useAuthenticatedConnectionSharing 着信呼び出しごとに認証するのではなく、認証済みの接続を再利用するようサーバー チャネルに指示する Boolean 値。既定では、useDefaultCredentials の値を true に設定すると、この値も true に設定されます。それ以外の場合は false に設定されます。false の場合は、サーバーが認証を要求した場合に各呼び出しが認証されます。これはプログラムでも同様です。プログラムでは、 CredentialCache.DefaultCredentials に設定した "credentials" 値をチャネル シンクに渡して、 IDictionary を実装するオブジェクトを作成することによって、または ChannelServices.GetChannelSinkProperties メソッドで返される IDictionary を使用することによって実現されます。

この名前と値のペアは、Windows 98、Windows NT 4.0、Windows Millennium Edition、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 ファミリの各プラットフォーム上の .NET Framework Version 1.1 でのみサポートされます。

unsafeAuthenticatedConnectionSharing サーバーが認証接続グループを作成するときに使用するクライアントの資格情報と接続グループ名をクライアントが提供することを示す Boolean 値。この値を true に設定する場合、 connectionGroupName の値は認証済みのユーザー 1 人だけに対応する必要があります。 useAuthenticatedConnectionSharing 値が true に設定されている場合、この名前と値のペアは無視されます。

この名前と値のペアは、Windows 98、Windows NT 4.0、Windows Millennium Edition、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 ファミリの各プラットフォーム上の .NET Framework Version 1.1 でのみサポートされます。

connectionGroupName unsafeAuthenticatedConnectionSharing の値も指定する場合に、サーバーで接続グループ名として使用される名前。 unsafeAuthenticatedConnectionSharing が true に設定されていない場合、この名前と値のペアは無視されます。この値を指定した場合は、この名前が認証済みのユーザー 1 人だけに対応することを確認してください。

Windows 98 と Windows Millennium Edition では、認証接続グループ名を識別するためのセキュリティ ID がありません。そのため、これらのプラットフォームでは 1 つの接続グループ名が使用されます。アプリケーションで ICredentials の実装を渡すか、 HttpClientChannel のプロパティの usernamepassworddomain の値を明示的に渡す場合、 unsafeAuthenticatedConnectionSharing の名前/値のペアおよび connectionGroupName の名前/値のペアも渡し、 connectionGroupName の値が 1 人の認証ユーザーにのみ割り当てられていることを確認することによって、接続共有の認証を有効にすることができます。

この名前と値のペアは、Windows 98、Windows NT 4.0、Windows Millennium Edition、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 ファミリの各プラットフォーム上の .NET Framework Version 1.1 でのみサポートされます。

必要条件

名前空間: System.Runtime.Remoting.Channels.Http

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Runtime.Remoting (System.Runtime.Remoting.dll 内)

参照

HttpClientChannel メンバ | System.Runtime.Remoting.Channels.Http 名前空間