文章編號: 823409 - 上次校閱: 2005年10月25日 - 版次: 4.5

FIX: 下載大型檔案會造成大量記憶體流失,導致回收 Aspnet_wp.exe 處理序

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文章的有 Microsoft.NET Framework 1.0] 版本請參閱 821387? (http://support.microsoft.com/kb/821387/ )
全部展開 | 全部摺疊

徵狀

當您使用 Response.BinaryWrite 方法來下載是 400 MB 的檔案或從處理程序可能會回收的 Aspnet_wp.exe 的 ASP.NET] 頁面更大。您可能會看到事件檢視器] 的應用程式日誌中記錄下列事件:

事件類型: 錯誤

事件來源: ASP.NET 1.1.4322.573

事件類別: 無

事件識別碼: 1000年

2002/5/16 日期:

時間: 上午 11: 01: 11

使用者: N/A

電腦: ComputerName

描述: Aspnet_wp.exe (PID: 9999) 意外停止。

發生的原因

在這種情況下會發生下列事項:
  1. 程式碼通常會使下載方塊出現。
  2. 在 Inetinfo.exe 處理程序啟動大量耗盡記憶體。
  3. 私用位元組 中 Inetinfo.exe 增加,直到虛擬記憶體用盡。
  4. 當您執行的虛擬記憶體不足時,您會遇到一個意外的回收 Aspnet_wp.exe 處理序。(私用位元組 Aspnet_wp.exe 中不會受到影響。Aspnet_wp.exe 私用位元組 的數目不會大幅增加)。
  5. 下載直到完成或已取消 Inetinfo.exe 不會釋放記憶體。
附註 如果您執行同時下載項目,可能複合問題。

解決方案

重要此 Hotfix 包含兩種類型的套件: Microsoft Windows 安裝程式封裝和選用元件管理員 」 套件 (OCM)。如果您的電腦執行 Microsoft Windows Server 2003 作業系統,您必須指定 Windows Server 2003 (OCM) 更新,因為 Windows Server 2003 檔案保護監視.NET Framework 1.1 檔案。如果您的電腦執行 Windows Server 2003 以外的作業系統,您必須繼續使用 Windows 安裝程式封裝。

支援的 Hotfix 現在可以從 Microsoft,但它只用來修正本文所述的問題。僅適用於發生此特定問題的系統。此 Hotfix 可能會接受其他測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個的.NET Framework 1.1 Service Pack 包含此 Hotfix。

如果要立即解決這個問題,洽詢 Microsoft 技術支援部以取得該 Hotfix。如需 Microsoft 產品支援服務電話號碼及支援成本的相關資訊的完整清單,請造訪下列 Microsoft 網站]:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
附註 在特殊情況下通常會因支援電話所產生的費用可能就不收取如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題。平常的支援成本將會套用到其他支援問題是所做不限定特定有問題的更新程式。

此 Hotfix 的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   Date         Time   Version       Size       File name
   ------------------------------------------------------------------------
   01-Aug-2003  19:47  1.1.4322.930    253,952  Aspnet_isapi.dll
   01-Aug-2003  19:47  1.1.4322.930     20,480  Aspnet_regiis.exe
   01-Aug-2003  19:47  1.1.4322.930     32,768  Aspnet_wp.exe
   16-May-2003  01:49                   33,522  Installpersistsqlstate.sql
   16-May-2003  01:49                   34,150  Installsqlstate.sql
   01-Aug-2003  19:38  1.1.4322.930     94,208  Perfcounter.dll
   02-Aug-2003  08:54  1.1.4322.930  1,216,512  System.dll
   02-Aug-2003  08:54  1.1.4322.930    323,584  System.runtime.remoting.dll
   02-Aug-2003  08:55  1.1.4322.930  1,253,376  System.web.dll
   02-Aug-2003  08:55  1.1.4322.930    819,200  System.web.mobile.dll
   02-Aug-2003  08:55  1.1.4322.930    569,344  System.web.services.dll
   02-Aug-2003  08:55  1.1.4322.930  1,335,296  System.xml.dll
   01-Aug-2003  19:42                   14,472  Webuivalidation.js

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

此 Hotfix 回應 物件 (Response.TransmitFile) 中新增一個額外的函式。可以使用函數代替 BinaryWrite 函式或是代替其他函式,將檔案傳送到用戶端。 而且,可以用這個函式,不論您想要傳輸檔案的大小。若要測試這項新功能,將下列程式碼貼在空白 ASPX 網頁中您下載並安裝 Hotfix 之後。您必須變更以反映在電腦上的路徑和存在的 ZIP 檔案程式碼中的 c:\\repro\\z.zip 」 這行程
<script runat=server language=C#>
    void Page_Load() {
        Response.ContentType="application/x-zip-compressed";
        Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
        Response.TransmitFile("c:\\repro\\z.zip");
    } 
</script>

這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
關鍵字:?
kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbqfe kbfix kbcodesnippet kbbug KB823409 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:823409? (http://support.microsoft.com/kb/823409/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。