修正:如果電腦搭載超過 32 個處理器且已安裝 .NET Framework 2.0 Service Pack 2 或 .NET Framework 3.5 Service Pack 1,則以 .NET Framework 2.0 為基礎的應用程式停止回應

套用到
.NET Framework 3.5 Service Pack 1

症狀

請考慮以下案例:

  • 您在具有超過 32 個處理器的電腦上安裝了 Microsoft .NET Framework 2.0 Service Pack 2 (SP2) 或 Microsoft .NET Framework 3.5 Service Pack 1 (SP) 1。
  • 您執行以 .NET Framework 2.0 為基礎的應用程式。
  • 應用程式會呼叫 ThreadPool 類別。
  • 應用程式也會呼叫 NtGetCurrentProcessorNumber 函數來取得電腦中的實際處理器數目。

在此案例中,應用程式會停止回應。 如果您偵錯問題,您會注意到執行緒正在等待 mscorwks 中的旗標!ThreadpoolMgr::RecycleMemory 方法。

原因

之所以發生這個問題,是因為 Common Language Runtime (CLR) 2.0 可以報告的處理器數目上限為 32。 不過,當 NtGetCurrentProcessorNumber 函式取得電腦中的實際處理器數目,且此數目大於 32 個處理器時, ThreadpoolMgr::RecycleMemory 方法就會進入無限迴圈。

解決方式

若要解決此問題,請將此 Hotfix 套用至安裝 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 的電腦。 若要解決此問題,請參閱「因應措施」章節。

此 Hotfix 的相關詳細資訊

Hotfix 資訊

Microsoft 現已提供支援的 Hotfix。 不過,其目的僅在於更正本文所述的問題。 僅將其套用至發生此特定問題的系統。 此 Hotfix 可能會收到額外的測試。 因此,若您沒有受到此問題的嚴重影響,建議您等待下一個包含此 Hotfix 的 Service Pack。

若要立即解決此問題,請連絡 Microsoft 客戶支援服務以取得 Hotfix。 如需 Microsoft 客戶支援服務的完整電話號碼清單以及支援費用的相關資訊,請造訪下列 Microsoft 網站:

http://support.microsoft.com/contactus/?ws=support附註 在某些特殊情況下,如果 Microsoft 支援服務工程師認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。

先決條件

您必須安裝下列其中一項,才能套用此 Hotfix:

  • Microsoft .NET Framework 2.0 Service Pack 2 (SP2)
  • Microsoft .NET Framework 3.5 Service Pack 1 (SP1)

                
              

重新啟動資訊

套用此 Hotfix 之後,您可能必須重新啟動電腦。

檔案詳細資訊

此 Hotfix 的英文版具有下表列出 (或更新檔案屬性) 的檔案屬性。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換成當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。

注意 如需其他檔案資訊,請參閱「詳細資訊」一節。

Windows Vista 和 Windows Server 2008 檔案資訊

適用於所有支援的 x86 型版本 Windows Vista SP2 和 Windows Server 2008 SP2

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.4474 4,550,656 2010 年 8 月 23 日 10:57 x86
Mscordacwks.dll 2.0.50727.4474 989,016 2010 年 8 月 23 日 10:56 x86
Mscorwks.dll 2.0.50727.4474 5,819,728 2010 年 8 月 23 日 10:57 x86
Sos.dll 2.0.50727.4474 388,936 2010 年 8 月 23 日 10:57 x86

適用於所有支援的 x64 型版本 Windows Vista SP2 和 Windows Server 2008 SP2

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.4474 4,567,040 2010 年 8 月 23 日 10:56 x64
Mscordacwks.dll 2.0.50727.4474 1,758,552 2010 年 8 月 23 日 10:56 x64
Mscorwks.dll 2.0.50727.4474 10,053,456 2010 年 8 月 23 日 10:56 x64
Sos.dll 2.0.50727.4474 485,192 2010 年 8 月 23 日 10:56 x64

適用於所有支援的 IA-64 版本 Windows Server 2008 SP2

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.4474 4,009,984 2010 年 8 月 23 日 10:57 IA-64
Mscordacwks.dll 2.0.50727.4474 3,085,144 2010 年 8 月 23 日 10:57 IA-64
Mscorwks.dll 2.0.50727.4474 20,176,720 2010 年 8 月 23 日 10:57 IA-64
Sos.dll 2.0.50727.4474 872,776 2010 年 8 月 23 日 10:57 IA-64

Windows 7 和 Windows Server 2008 R2 檔案資訊

適用於所有支援的 x86 版本 Windows 7

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.5024 4,550,656 2010 年 8 月 21 日 00:57 x86
Mscordacwks.dll 2.0.50727.5024 995,672 2010 年 8 月 21 日 00:57 x86
Mscorwks.dll 2.0.50727.5024 5,822,800 2010 年 8 月 21 日 00:57 x86
Sos.dll 2.0.50727.5024 388,936 2010 年 8 月 21 日 00:58 x86

適用於所有支援的 x64 版本 Windows 7 和 Windows Server 2008 R2

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.5024 4,567,040 2010 年 8 月 21 日 00:59 x64
Mscordacwks.dll 2.0.50727.5024 1,755,480 2010 年 8 月 21 日 00:59 x64
Mscorwks.dll 2.0.50727.5024 10,042,704 2010 年 8 月 21 日 00:59 x64
Sos.dll 2.0.50727.5024 485,192 2010 年 8 月 21 日 00:59 x64

適用於所有支援的 IA-64 版本 Windows Server 2008 R2

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Mscorlib.dll 2.0.50727.5024 4,009,984 2010 年 8 月 21 日 00:17 IA-64
Mscordacwks.dll 2.0.50727.5024 3,082,072 2010 年 8 月 21 日 00:17 IA-64
Mscorwks.dll 2.0.50727.5024 20,189,008 2010 年 8 月 21 日 00:17 IA-64
Sos.dll 2.0.50727.5024 872,776 2010 年 8 月 21 日 00:17 IA-64

因應措施

請使用下列方法之一解決此問題:

方法 1

將 .NET Framework 升級至 Microsoft ..NET Framework 4.0。

方法 2

使用 SetProcessAffinityMask 函數,將處理器親和性遮罩設定為前 32 個處理器。 如需 SetProcessAffinityMask 函數的詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:

SetProcessAffinityMask 函數
          

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

更多資訊

有關 Windows Vista 和 Windows Server 2008 的其他檔案資訊

所有支援的 Windows Vista SP2 和 Windows Server 2008 SP2 x86 版本的其他檔案

檔案名稱 X86_mscorlib_b77a5c561934e089_6.0.6002.22472_none_b0cba9d4db4dd1f6.manifest
檔案版本 不適用
檔案大小 544,632
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.0.6002.22472_none_14369ba920d6424e.manifest
檔案版本 不適用
檔案大小 6,241
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:00
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_1b7278c248d5367b.manifest
檔案版本 不適用
檔案大小 25,247
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02

所有支援的 Windows Vista SP2 和 Windows Server 2008 SP2 x64 版本的其他檔案

檔案名稱 Amd64_mscorlib_b77a5c561934e089_6.0.6002.22472_none_691e72fdc6d1a8f0.manifest
檔案版本 不適用
檔案大小 607,386
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:10
檔案名稱 Amd64_netfx-mscordacwks_b03f5f7f11d50a3a_6.0.6002.22472_none_cc8964d20c5a1948.manifest
檔案版本 不適用
檔案大小 6,267
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:08
檔案名稱 Amd64_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_d3c541eb34590d75.manifest
檔案版本 不適用
檔案大小 24,663
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:09
檔案名稱 X86_mscorlib_b77a5c561934e089_6.0.6002.22472_none_b0cba9d4db4dd1f6.manifest
檔案版本 不適用
檔案大小 544,632
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.0.6002.22472_none_14369ba920d6424e.manifest
檔案版本 不適用
檔案大小 6,241
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:00
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_1b7278c248d5367b.manifest
檔案版本 不適用
檔案大小 25,247
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02

所有支援的 Windows Server 2008 SP2 IA-64 版本的其他檔案

檔案名稱 Ia64_mscorlib_b77a5c561934e089_6.0.6002.22472_none_b0cb8796db4e09da.manifest
檔案版本 不適用
檔案大小 607,375
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 17:35
檔案名稱 Ia64_netfx-mscordacwks_b03f5f7f11d50a3a_6.0.6002.22472_none_1436796b20d67a32.manifest
檔案版本 不適用
檔案大小 6,257
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 1:17:33 AM
檔案名稱 Ia64_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_1b72568448d56e5f.manifest
檔案版本 不適用
檔案大小 24,611
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 17:34
檔案名稱 Ia64_netfx-sos_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_fd04c12c14cb5647.manifest
檔案版本 不適用
檔案大小 4,124
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 17:32
檔案名稱 X86_mscorlib_b77a5c561934e089_6.0.6002.22472_none_b0cba9d4db4dd1f6.manifest
檔案版本 不適用
檔案大小 544,632
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.0.6002.22472_none_14369ba920d6424e.manifest
檔案版本 不適用
檔案大小 6,241
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:00
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_1b7278c248d5367b.manifest
檔案版本 不適用
檔案大小 25,247
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 18:02
檔案名稱 X86_netfx-sos_dll_b03f5f7f11d50a3a_6.0.6002.22472_none_fd04e36a14cb1e63.manifest
檔案版本 不適用
檔案大小 4,115
日期 (UTC) 2010 年 8 月 23 日
UTC) (時間 17:59

有關 Windows 7 和 Windows Server 2008 R2 的其他檔案資訊

所有支援的 x86 版本 Windows 7 的其他檔案

檔案名稱 X86_mscorlib_b77a5c561934e089_6.1.7600.20788_none_856fe847974f321e.manifest
檔案版本 不適用
檔案大小 331,675
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 19:13
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.1.7600.20788_none_e8dada1bdcd7a276.manifest
檔案版本 不適用
檔案大小 2,730
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 1,910
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_f016b73504d696a3.manifest
檔案版本 不適用
檔案大小 6,923
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 19:12
檔案名稱 X86_netfx-sos_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_d1a921dcd0cc7e8b.manifest
檔案版本 不適用
檔案大小 06:20
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 19:09

所有支援的 Windows 7 和 Windows Server 2008 R2 x64 版本的其他檔案

檔案名稱 Amd64_mscorlib_b77a5c561934e089_6.1.7600.20788_none_3dc2b17082d30918.manifest
檔案版本 不適用
檔案大小 368,857
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:51
檔案名稱 Amd64_netfx-mscordacwks_b03f5f7f11d50a3a_6.1.7600.20788_none_a12da344c85b7970.manifest
檔案版本 不適用
檔案大小 2,738
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:47
檔案名稱 Amd64_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_a869805df05a6d9d.manifest
檔案版本 不適用
檔案大小 6,927
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:50
檔案名稱 Amd64_netfx-sos_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_89fbeb05bc505585.manifest
檔案版本 不適用
檔案大小 10:20
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:45
檔案名稱 X86_mscorlib_b77a5c561934e089_6.1.7600.20788_none_856fe847974f321e.manifest
檔案版本 不適用
檔案大小 331,675
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:57
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.1.7600.20788_none_e8dada1bdcd7a276.manifest
檔案版本 不適用
檔案大小 2,730
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:53
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_f016b73504d696a3.manifest
檔案版本 不適用
檔案大小 6,923
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:56
檔案名稱 X86_netfx-sos_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_d1a921dcd0cc7e8b.manifest
檔案版本 不適用
檔案大小 06:20
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:52

所有支援的 Windows Server 2008 R2 IA-64 版本的其他檔案

檔案名稱 Ia64_mscorlib_b77a5c561934e089_6.1.7600.20788_none_856fc609974f6a02.manifest
檔案版本 不適用
檔案大小 368,856
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:48
檔案名稱 Ia64_netfx-mscordacwks_b03f5f7f11d50a3a_6.1.7600.20788_none_e8dab7dddcd7da5a.manifest
檔案版本 不適用
檔案大小 2,737
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:44
檔案名稱 Ia64_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_f01694f704d6ce87.manifest
檔案版本 不適用
檔案大小 6,926
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:47
檔案名稱 Ia64_netfx-sos_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_d1a8ff9ed0ccb66f.manifest
檔案版本 不適用
檔案大小 2,009
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 07:43
檔案名稱 X86_mscorlib_b77a5c561934e089_6.1.7600.20788_none_856fe847974f321e.manifest
檔案版本 不適用
檔案大小 331,675
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:57
檔案名稱 X86_netfx-mscordacwks_b03f5f7f11d50a3a_6.1.7600.20788_none_e8dada1bdcd7a276.manifest
檔案版本 不適用
檔案大小 2,730
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:53
檔案名稱 X86_netfx-mscorwks_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_f016b73504d696a3.manifest
檔案版本 不適用
檔案大小 6,923
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:56
檔案名稱 X86_netfx-sos_dll_b03f5f7f11d50a3a_6.1.7600.20788_none_d1a921dcd0cc7e8b.manifest
檔案版本 不適用
檔案大小 06:20
日期 (UTC) 2010 年 8 月 26 日
UTC) (時間 06:52