您目前已離線,請等候您的網際網路重新連線

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

Windows Server 2003 的支援已於 2015 年 7 月 14 日結束

Microsoft 已於 2015 年 7 月 14 日結束對 Windows Server 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

徵狀
當您在執行 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) 網站:
內容

文章識別碼:911716 - 最後檢閱時間:12/03/2007 18:47:51 - 修訂: 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
意見反應