我通過在頁面中間呼叫Response.Flush()
將頁面發送給客戶端。這是瀏覽器將獲得html的第一部分,並且可以開始下載資源,同時我的服務器繼續處理剩餘的請求。設置Transfer-Encoding標頭無法正常工作
由於我的IIS服務器和我的客戶端(CDN,防火牆,負載平衡等)之間的某些第三方服務,我需要設置標頭Transfer-Encoding: Chunked
,以便他們知道響應將以塊的形式返回。
我試圖通過調用設置標題:Response.Headers.Add("Transfer-Encoding", "chunked");
出於某種原因,當我這樣做,我等待相當長的時間,甚至是我的IIS服務器直接聯繫時後得到一個空白頁背面,沒有經過全體會第三方。當附加到進程調試時,我沒有看到任何錯誤。
刪除'Transfer-Encoding'標頭的工作原理,但我需要這個標頭爲我正在使用的一些第三方。
任何人都知道我可以在我的web應用程序中設置這個頭?
順便說一句 - 我也嘗試直接在IIS的'Response Headers'部分設置此標頭,並且在執行此操作時響應仍爲空。
時似乎塊傳輸編碼,需要以特定的格式進行編碼的數據IIS將自動切換到塊傳輸編碼。在你的問題中你不清楚你是否執行了這種編碼。你做 ? http://en.wikipedia.org/wiki/Chunked_transfer_encoding – jbl
@jbl - 謝謝!我進一步調查了這一點,並意識到在asp.net中調用'Response.Flush()'不幸的是不會以使用頭部'Transfer-Encoding:chunked'所需的格式輸出數據。響應被髮送,但瀏覽器不知道如何分析它。如果你添加這個作爲一個正確的答案,我會獎勵你的賞金! – gillyb
完成。 thx爲後續! – jbl