希望這不是一個重複...保存巴紐的OutputStream截斷
假設我有在大小png格式,300KB左右一個形象,我把它發送到客戶端從aspx文件是這樣的:
Bitmap img = new Bitmap(filepath);
using(MemoryStream ms = new MemoryStream())
{
img.save(ms, ImageFormat.Png);
Response.ContenType="image/png";
ms.WriteTo(Response.OutputStream);
}
img.Dispose();
在客戶端的JavaScript,它只是:
var img = new Image();
img.src = xxx.aspx?param=semething;
這通常工作......但偶爾的響應似乎被縮短。 Chrome會等待請求,直到超時。在Firebug,在圖像中的Net選項卡下查看,請求實際顯示是這樣的:
Get xxx.aspx?param=something hostUrl 0(14.7mb) 127.0.0.1:80
這14.7MB小艾...的bizzare它看似超時後,螢火蟲實際上顯示整個加載的圖像雖然..所以IIS看起來已經發出了在這種情況下的一切......
在所有情況下,標題正確顯示contentType和content-Length。 有些時候,請求不會結束,直到我關閉瀏覽器或從網頁中拉出圖像。然後,我可以找到IIS向事件日誌發送錯誤消息,說明遠程主機關閉了連接。
我只是似乎無法針點問題......
- 編輯 -
改爲根本就一個Response.TransmitFile(文件路徑),但問題仍然存在。 至少在Chrome中,我認爲請求最終在90秒後被瀏覽器終止。 IIS沒有記錄任何錯誤... 看起來像IIS認爲它已經完成了所有必須要做的事情......但在本地機器上瀏覽器的路上失去了一些東西......
我帶系統到另一臺機器,並對其進行測試後... 並且還嘗試改變以後ashx的...
太好了。我會給它一點,先測試一下。 – user1600124
好吧...我試着用Response.TransmitFile,並且清除響應內容。但問題依然存在。 當我有更多的時間在我的手上,我會嘗試做一個.ashx,看看它是怎麼回事。 – user1600124
你有任何進一步的代碼沒有張貼在這裏後,在文件閱讀? –