OnStartProcessingRequest(ProcessRequestArgs args)
をオーバーライドするWCF DataService(v5.2)があります。私は応答にいくつかのヘッダーを追加したいと思います(この方法では、私は正しい場所だと思いますか?)。私はまずこれを試しました:HTTPヘッダーを持つDataServiceのHttpContextとOperationContext
args.OperationContext.ResponseHeaders.Add(...)
それは動作しませんでした。私はそれを試みた:
OperationContext.Current.OutgoingMessageHeaders.Add(...)
それは動作しませんでした。私はその吸盤に新しいOperationContextScopeを追加しようとしました。それでも失敗しました。ようやく私はこれを試しました:
HttpContext.Current.Response.AddHeader(...);
そのオプションが機能しました! (「仕事」とは、実際にはクライアントへの応答に現れたという意味です)なぜ最初の2つのオプションは機能しませんでしたか?
ウェブ上でさらに読んだ後、私は
WebOperationContext.Current.OutgoingResponse.Headers.Add(...)
も機能することを発見しました。なぜこのメソッドの中に4つの現在のコンテキストがありますか?どのようにして(実行時に)使用するのかを人がどのように知っていますか?私の[WebGet]
メソッドで有効なものはどれですか?私の[QueryInterceptor]
メソッドで有効なものはどれですか?どのコンテキストが正しいリクエストヘッダを持つことが保証されていますか? (私は今のところargs.OperationContextを使っています)