當您在執行 Windows Server 2003 的電腦上裝載使用 ASP.NET 的 Web 應用程式時,可能會收到錯誤訊息,或者電腦可能停止回應

文章翻譯 文章翻譯
文章編號: 911716 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

當您在執行 Microsoft Windows Server 2003 的電腦上裝載使用 Microsoft ASP.NET 的 Web 應用程式時,出現效能降低的情形。當您在多處理器電腦的多應用程式集區中裝載 Web 應用程式時,可能就會發生這個問題。此外,當可用記憶體不足時,您可能會遇到下列一或多個問題:
  • 收到 System.OutOfMemoryException 類型的例外狀況。
  • 當您嘗試開啟 ASP.NET 網頁時,收到下列錯誤訊息:
    伺服器應用程式無法使用
  • 電腦可能停止回應。

發生的原因

之所以發生這個問題,是因為多處理器電腦上的 Microsoft .NET Framework Common Language Runtime (CLR) 使用「伺服器」記憶體回收行程 (GC) 所造成的。這是預設的行為。多處理器電腦上的「伺服器」記憶體回收行程已為可擴充的輸送量而進行最佳化。為了避免爭用,同時改善多處理器電腦上記憶體回收行程的效能,「伺服器」記憶體回收行程會為每個處理器建立一個堆積,當做平行回收使用。因此,當您裝載多個 ASP.NET 背景工作處理序時,「伺服器」記憶體回收行程會耗用許多記憶體。這個情形可能會造成<徵狀>一節所述的問題。

其他可行方案

如果要解決這個問題,請將 .NET Framework Common Language Runtime 設定為使用「工作站」記憶體回收行程。「工作站」記憶體回收行程經過最佳化,可以減少互動式應用程式的記憶體回收行程暫停時間。此外,「工作站」記憶體回收行程也只會建立一個堆積。因此,當您在多處理器電腦上執行多個應用程式時,「工作站」記憶體回收行程會耗用較少記憶體。

如果要將 .NET Framework Common Language Runtime 設定為使用「工作站」記憶體回收行程,請在 Aspnet.config 檔案的 <runtime> 項目後面加入下列程式碼。Aspnet.config 檔案位於下列其中一個資料夾中:
  • 如果您執行 Microsoft .NET Framework 2.0:
    %WINDIR%\Microsoft.NET\Framework\v2.0.50727
  • 如果您執行 Microsoft .NET Framework 1.1:
    %WINDIR%\Microsoft.NET\Framework\v1.1.4322
<configuration>
<runtime>
<gcServer enabled="false"/>
</runtime>
</configuration>
注意「工作站」記憶體回收行程已為低延遲而進行最佳化。一般而言,用戶端應用程式會需要低延遲。不過,將 .NET Framework Common Language Runtime 設定為使用「工作站」記憶體回收行程之後,低延遲可能會造成輸送量減少。

狀況說明

這是原本設計的做法。

其他相關資訊

如需有關 .NET Framework 效能考量的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
http://msdn2.microsoft.com/zh-tw/library/ms973838.aspx

屬性

文章編號: 911716 - 上次校閱: 2007年12月3日 - 版次: 1.5
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft .NET Framework 2.0
  • Microsoft ASP.NET 2.0
  • Microsoft .NET Framework 1.1
  • Microsoft ASP.NET 1.1
關鍵字:?
kbtshoot kbprb KB911716
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com