我有一個WCF DataService的(V5.2),它覆蓋OnStartProcessingRequest(ProcessRequestArgs args)
。我想爲響應添加一些標題(在這個我認爲是正確的地方?)。我第一次嘗試這個:的HttpContext對的OperationContext中的DataService與HTTP頭
args.OperationContext.ResponseHeaders.Add(...)
這沒有奏效。然後我試了這個:
OperationContext.Current.OutgoingMessageHeaders.Add(...)
這沒有奏效。我試圖在該吸盤上添加一個新的OperationContextScope。它仍然失敗。最後我試了這個:
HttpContext.Current.Response.AddHeader(...);
該選項的工作! (通過「工作」我的意思是它實際上出現在對客戶的迴應中。)爲什麼前兩個選項沒有工作?
在網絡上進一步看完後我發現,
WebOperationContext.Current.OutgoingResponse.Headers.Add(...)
也適用。爲什麼我們在這個方法裏面有四個當前的背景?一個人如何知道使用哪一個(在運行時)?哪些在我的[WebGet]
方法中有效?哪些在我的[QueryInterceptor]
方法中有效?哪個上下文保證有正確的請求頭文件? (我一直在使用args.OperationContext。)