2009-08-06 26 views
1

基本的に、リッスンソケットとは異なるソースからHTTPリクエストを取得したいとします。しかし、提供されたバインディングはこれをサポートしていないため、現在自分のバインディングを構築しています。ヘッダー情報をカスタムWCF HTTPバインディングに格納する方法

私の現在のバインディングは、WebMessageEncoderと、IReplyChannelインターフェイスを実装するカスタムチャネルを使用するカスタムChannelListenerを参照するカスタムTransportBindingElementで構成されています。 ServiceModelは「receiveRequest」メソッドを呼び出します。このメソッドは、後でRequestContextを返す必要があります。

ただし、RequestContextクラスには、Messageオブジェクトに配置する必要があるRequestMessageプロパティのみが含まれています。この事実から、WebGet/WebInvoke属性のUriTemplatesに一致させるために必要なすべてのHTTPヘッダーをどこに置くべきかはわかりません。

これで私を助けてください。 :)

挨拶

答えて

1

WebHttpディスパッチャは、私が覚えているから、二つのことを見て:あなたはあなたのによって生成要求メッセージのPropertiesコレクションに作成し、保管しなければならない

  • HttpRequestMessagePropertyを、トランスポートチャネル。
  • メッセージをチャネルスタックに渡す前に、トランスポートチャネルが確実に埋め込まれるようにする、要求に関連付けられたURL(msg.Headers.Toに保存する必要があります)。
関連する問題