2014-11-21 374 views
1

我試圖寫代碼來下載文件。我已經測試過本地服務器沒有錯誤, 但是生產服務器(iis在DMZ區域) 。 我收到如下錯誤。本地IIS(DMZ區域)中的錯誤[ERR_INVALID_RESPONSE]沒有錯誤

信息錯誤

(可能是暫時,或者它已永久性地移動到了新網址 錯誤代碼:ERR_INVALID_RESPONSE)

   FileStream fs = null; 
       fs = File.Open(localPath, FileMode.Open); 
       byte[] btFile = new byte[fs.Length + 1]; 
       fs.Read(btFile, 0, Convert.ToInt32(fs.Length)); 
       fs.Close(); 

       Response.AddHeader("Content-disposition", "attachment; filename=" + fileName); 
       Response.ContentType = "application/" + type; 

       Response.BinaryWrite(btFile); 
       Response.Flush(); 
       Response.Close(); 

我應該怎麼做來解決它。 。?請告訴我

謝謝

+0

「錯誤」代碼實際上是一個320的HTTP狀態代碼,它應該將您重定向到一個新的URL。您將需要查看響應的狀態代碼並查看它是否爲200(確定),然後嘗試寫出文件。合理? – techvice 2014-11-21 03:58:15

回答

0

我同時使用實體框架從數據庫中檢索數據有同樣的錯誤(ERR_INVALID_RESPONSE)。在DEV服務器上它工作正常,但在UAT上它掛起並返回該錯誤。

原來,查詢使用動態謂詞,並導致從IEnumerable而不是IQueryable調用篩選器方法。它在SQL Profiler上可見。查詢試圖將整個數據提取到內存中。將動態謂詞轉換爲epression可以解決問題。

一般來說,錯誤是由服務器端的OutOfMemoryException引起的,並且由於數據庫大小而在DEV上沒有發生。這可能是你的線索。