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