現在のシンクからのメッセージ処理を要求します。
Function ProcessMessage( _
ByVal sinkStack As IServerChannelSinkStack, _ ByVal requestMsg As IMessage, _ ByVal requestHeaders As ITransportHeaders, _ ByVal requestStream As Stream, _ <Out()> ByRef responseMsg As IMessage, _ <Out()> ByRef responseHeaders As ITransportHeaders, _ <Out()> ByRef responseStream As Stream _) As ServerProcessing
[C#]
ServerProcessing ProcessMessage(
IServerChannelSinkStacksinkStack,IMessagerequestMsg,ITransportHeadersrequestHeaders,StreamrequestStream, out IMessageresponseMsg, out ITransportHeadersresponseHeaders, out StreamresponseStream);
[C++]
ServerProcessing ProcessMessage(
IServerChannelSinkStack* sinkStack,IMessage* requestMsg,ITransportHeaders* requestHeaders,Stream* requestStream, [ Out] IMessage** responseMsg, [ Out] ITransportHeaders** responseHeaders, [ Out] Stream** responseStream);
[JScript]
function ProcessMessage(
sinkStack : IServerChannelSinkStack,requestMsg : IMessage,requestHeaders : ITransportHeaders,requestStream : Stream,responseMsg : IMessage,responseHeaders : ITransportHeaders,responseStream : Stream) : ServerProcessing;
パラメータ
- sinkStack
現在のシンクを呼び出したチャネル シンクのスタック。 - requestMsg
要求を格納しているメッセージ。 - requestHeaders
クライアントからの受信メッセージから取得したヘッダー。 - requestStream
処理して、逆シリアル化シンクに渡す必要があるストリーム。 - responseMsg
このメソッドが返されるときに、応答メッセージを保持している IMessage を格納します。このパラメータは初期化せずに渡されます。 - responseHeaders
このメソッドが返されるときに、クライアントへのリターン メッセージの見出しに追加されるヘッダーを保持している ITransportHeaders を格納します。このパラメータは初期化せずに渡されます。 - responseStream
このメソッドが返されるときに、転送シンクに戻る Stream を格納します。このパラメータは初期化せずに渡されます。
戻り値
メッセージがどのように処理されたかに関する情報を提供する、 ServerProcessing ステータスの値。
例外
例外の種類 | 条件 |
---|---|
SecurityException | 直前の呼び出し元に、インフラストラクチャ アクセス許可がありません。 |
解説
プロキシのジョブは、プロキシで呼び出されたメソッドの呼び出しをメッセージ オブジェクトに変換することです。このメッセージ オブジェクトは、 IMessage インターフェイスを実装し、メッセージ シンク オブジェクト上で ProcessMessage を呼び出すことによって、クライアント エンドからサーバー エンドに渡されます。各メッセージ シンクがそれぞれの作業を実行した後に、次のメッセージ シンク上に ProcessMessage を呼び出す必要があるため、メッセージ シンクは互いにチェインされます。たとえば、同期に関連するメッセージ シンクは、ロックを取得または解放したり、その後にダウンストリーム メッセージ シンクにそれ以降の処理を代行させたりすることができます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (インフラストラクチャ コードを操作するために必要なアクセス許可)要求値: SecurityAction.LinkDemand; アクセス許可値: SecurityPermissionFlag.Infrastructure
参照
IServerChannelSink インターフェイス | IServerChannelSink メンバ | System.Runtime.Remoting.Channels 名前空間