2011-07-25 16 views
1

WCFサービスからクライアントに返されるHTTP応答ヘッダーにアクセスする必要があります。 HTTPContextへのアクセスは簡単です(HttpContext.Current.Responseを介して)。しかし、StatusCodeがすでに設定されている場合(たとえばステータスが500の場合)、最後に実行されるイベント/拡張機能/動作は何ですか?WCFサービスからHTTPヘッダーにアクセス

EDIT:メッセージインスペクタは、実行時に状態コードがまだ設定されていないため、ここでは良い解決策ではないようです。 (少なくとも私の試行ではそうだった)

答えて

0
  1. ヘッダーを制御する最も簡単な方法は、メッセージコントラクトを使用することです。

  2. サービス終了時にメッセージを受信した直後に、Message Inspectorsを使用してメッセージを監視します。

  3. 極端な場合は、他の標準ルートに満足できない場合は、生のXMLメッセージを処理するPOX(Plain Old XML)タイプの操作に進むことができます。

+0

感謝を参照してくださいヒントを検査官、私の問題は、HTTPステータスコードは、ときに設定されていないかもしれないということですメッセージインスペクタが呼び出されます。 (私は決して設定されていないと思う、それはメッセージ検査官が走った後に設定されるからだ) – jaraics

0

あなたはこのように、WebOperationContext.Current.IncomingRequest上のすべてのヘッダにアクセスすることができます。

IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest; 
WebHeaderCollection headers = request.Headers; 

Console.WriteLine("-------------------------------------------------------");  
foreach (string headerName in headers.AllKeys) 
{ 
    Console.WriteLine(headerName + ": " + headers[headerName]); 
} 
Console.WriteLine("-------------------------------------------------------"); 

は、メッセージのためのhere

関連する問題