Iis-7
IIS7 二進制流錯誤
我很難理解我所看到的問題,所以如果問題含糊不清,請接受我的道歉。我在 IIS7 中執行一個經典的 asp 應用程序,除了一個讓我難過的問題外,一切似乎都執行良好。
基本上,可以使用 Persits ASP Upload 組件的 sendBinary 方法從伺服器下載文件。該組件適用於上傳等,只是下載有問題。
奇怪的是,我不能有一個純 asp 頁面來提供二進製文件。在 II6 中一切正常,但在 II7 中出現了一個奇怪的問題。例如,這不起作用。
<% SET objUpload = server.createObject("Persits.Upload") objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true SET objUpload = NOTHING %>
但是,如果我在 asp 程式碼前面放置任何內容,則該文件可以正常使用。
serve this <% SET objUpload = server.createObject("Persits.Upload") objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true SET objUpload = NOTHING %>
我也可以先在響應流中寫一些東西,它工作正常。
<% Response.Write("server this") SET objUpload = server.createObject("Persits.Upload") objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true SET objUpload = NOTHING %>
有沒有人對可能導致這種情況的原因有任何想法,或者有沒有人遇到過類似的情況?我確定這與 IIS 7 中的設置有關。
這是 IIS7.5(Windows 2008)的一個已知問題。他們現在在我的預設設置上具有“分塊編碼”,您不能再發送“內容長度”標頭。
當您為第二個參數傳遞“true”時,Persits aspupload 會設置它。
我不確定為什麼 MSFT 沒有修復這個錯誤。
您可以在以下位置找到解決方法:http: //support.persits.com/show.asp ?code=PS100721176