5
我在IIS6服務器上運行ASP.NET。目前,服務器設置爲壓縮動態生成的內容,主要用於減少正在檢索的ASPX文件的頁面大小。ASP.NET/IIS6 - 使用動態壓縮內容時禁用分塊編碼?
一旦ASPX文件具有下面的代碼位,用來從數據庫中獲取文件並將其發送給用戶:
Response.Clear();
Response.Buffer = true;
Response.ContentType = Document.MimeType;
Response.AddHeader("content-disposition", "attachment;filename=\"" + Document.Filename + Document.Extension + "\"");
Response.AddHeader("content-length", Document.FileSizeBytes.ToString());
byte[] docBinary = Document.GetBinary();
Response.BinaryWrite(docBinary);
下載本身完美的作品。然而,下載文件的人沒有得到一個進度條,這是令人難以置信的煩人。
從我一直在做的研究看來,當壓縮動態內容時,IIS將傳輸編碼設置爲分塊時,會刪除內容長度標頭,因爲它違反了HTTP1.1標準。
在服務器級別關閉動態壓縮功能的最佳方式是什麼?有沒有辦法通過ASP.NET以編程方式關閉此響應的壓縮?有沒有更好的方式去做事?
備註:當您提供的文件是Office 2007/2010文件時,您似乎需要提供Content-Length標頭。 http://stackoverflow.com/questions/5914675/content-length-header-ignored-by-iis-6。 – 2011-05-06 18:29:05