症狀
當你安裝 .NET Framework 2.0 服務包 2、.NET Framework 3.0 服務包 2 或 .NET Framework 3.5 服務包 1 的特定更新時,該更新可能會成功安裝。 然而,檔案可能不會更新。 因此,該更新可能會在 Windows Update 上重新提供。
原因
此情況可能因多種原因發生,包括與雙分支維修相關的某些安裝故障問題。 在 2009 年 1 月至 2009 年 7 月期間,針對 .NET Framework 2.0 Service Pack 2、.NET Framework 3.0 Service Pack 2 及 .NET Framework 3.5 Service Pack 1 的多個熱修補釋版本均存在缺陷。 當安裝有此缺陷的熱修補程式,並安裝安全更新時,熱修丁的存在會阻礙安全更新中的有效載荷檔案正確更新。 在某些情況下,這個問題也可能以以下 Microsoft 知識庫文章中描述的錯誤形式出現:
2262911 「無法載入,輸入 'System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy'」的錯誤,安裝後982167或 Update 982168 Microsoft 已移除所有包含此缺陷的熱修補程式,並以沒有此缺陷的新熱修正取代。 Microsoft 知識庫關於有缺陷熱修補丁的文章已經更新,裡面列出了沒有缺陷的替代熱修補。 如果你安裝了這裡列出的有缺陷熱修補,請使用本文「變通」部分描述的解決方法來解決問題。 如果你不採用這個變通方法,安全更新的有效載荷檔案有可能沒有正確更新,導致電腦處於不穩定甚至可能有漏洞的狀態。
有缺陷的熱修補程式列表
| 946411 | 修正:當你在 Windows XP Service Pack 2 或 Service Pack 3 基礎的電腦上列印 XPS 檔案時,XPS 檔案中的字元會印錯 |
|---|---|
| 952883 | IX:包含內部設定器的屬性的 ASMX 服務方法的回傳型別或 out 參數,在安裝 .NET Framework 的電腦上,可能無法序列化 |
| 958090 | 修正:System.EnterpriseServices.TransactionProxyException 例外在交易完成時被觸發時,無法從其他應用程式域捕捉到 |
| 958252 | 修正:當你在 .NET Framework 2.0 Service Pack 1 (SP1) 中使用 Msdatasetgenerator 自訂工具時,第三方 .NET 資料提供者產生程式碼的 scale 值和精確度值會與你設定的值不同 |
| 960442 | 修正:當你使用 BinaryFormatter 物件在 .NET Framework 2.0 Service Pack 2 或 .NET Framework 3.5 Service Pack 1 的組合語言中序列化和反序列化一般型別時,會收到異常錯誤訊息 |
| 960754 | 修正:當你參考 Transaction.Current.TransactionInformation 物件時,會收到 ObjectDisposedException 例外 |
| 961847 | 修正:當你重新編譯一個基於 .NET Framework 3.5 Service Pack 1 的專案後,以設計模式查看頁面時出現錯誤訊息:「錯誤建立控制權 – 'ControlInstanceName [text]' 無法設定在屬性 'PropertyName' 上」 |
| 961864 | 修正:當您存取支援 ASP.NET 2.0 AJAX 的網站時,網頁客戶端可能會遇到多種問題 |
| 961870 | 修正:當你執行需要 CLR 載入 .NET Framework 2.0 Service Pack 2 混合模式組件的應用程式時,就發生記憶體洩漏 |
| 961881 | 修正:當你啟動一個在 CLR 上執行的應用程式時,會發生存取違規 |
| 961884 | 修正:當你更改App_Code資料夾、bin 資料夾或 Global.asax 檔案後,初次向 ASP.NET 網站請求時,效能會非常緩慢 |
| 961885 | 修正:當你執行呼叫 XslCompiledTransform.Transform 方法的 CLR 應用程式時,會收到存取違規錯誤 |
| 961901 | 修正:當你從 .NET Framework 2.0 SP2 基礎的 Windows 表單返回編輯欄位時,你為編輯欄位設定的特定 IME 模式可能會消失。修正:當你從 .NET Framework 2.0 SP2 基礎的 Windows 表單回到編輯欄位時,你為編輯欄位設定的特定 IME 模式可能會消失 |
| 961902 | 修正:當你編譯包含多個應用程式資源檔案的 ASP.NET 專案時,會出現錯誤訊息:「mscorlib.dll 發生了 'System.ArgumentException' 類型的 first chance 例外」 |
| 962351 | 修正:當你使用 Internet Explorer 8.0 的標準模式來查看具有動態選單的 ASP.NET 網頁時,彈出選單不會顯示 |
| 962890 | 修正:當基於 .NET Framework 2.0 的應用程式反覆呼叫 XmlTextReader.Read 函式時,出現錯誤訊息:「第 171 行的『Permission』start 標籤與 'PermissionRead' 的終結標籤不符」 |
| 963676 | 修正:CLR 會因致命的執行引擎錯誤而失敗,且當你使用 .NET Framework 2.0 Service Pack 2 執行應用程式時會當機 |
| 967114 | 修正:當你使用 System.Data.DataTable.InsertRow 方法或其他 .NET Framework 2.0 應用程式中任何超載方法插入資料表時,會出現錯誤訊息:「算術運算導致溢位」 |
| 967613 | 修正:監控事件日誌的應用程式在呼叫 System.Diagnostics.EventLog 類別的 Dispose 方法時當機 |
| 967615 | 修正:基於 .NET Framework 2.0 SP2 的應用程式或基於 .NET Framework 3.5 SP1 的應用程式,無法正確處理由 WindowsIdentity 物件建立的安全句柄物件 |
| 967812 | 有一個熱修正檔可用,更新斯洛伐克、斯洛維尼亞及土耳其的 System.Globalization.RegionInfo 類別中部分屬性 |
| 968108 | 解決方法:當您存取部署在網路農場中的 ASP.NET 2.0 AJAX 啟用網站時,網頁用戶端會當機或遇到意外行為 |
| 968249 | 修正:當你使用 Type Library Exporter 從 .NET Framework 2.0 Service Pack 2 中的 CLR 組合語言產生型別庫時,會產生錯誤的實例大小 |
| 968392 | 如果在 Visual Studio 2005 或 Visual Studio 2008 安裝 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 後,ImageUrl 屬性設定為 ImageUrl 屬性,則不會顯示錯誤訊息及超連結控制項:「物件參考未設定為物件實例」 |
| 968432 | 修正:System.InvalidOperationException 例外發生在你執行基於 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 的網頁應用程式時 |
| 968556 | 修正:XslCompiledTransform.Transform 方法在 .NET Framework 2.0 中沒有一個可同時接受 XPathNavigator 與 XmlResolver 物件作為參數的超載方法。 |
| 968760 | 在 Microsoft .NET Framework 2.0 中,受管理應用程式擁有大量的執行緒句柄和事件句柄 |
| 969364 | 修正:使用Visual Web Developer中的「生成本地資源」工具產生本地資源檔案時,嵌入 ASP.NET 2.0網頁中的程式碼區塊會消失 |
| 969612 | ASP.NET 2.0 熱修正整合套件說明:2009 年 4 月 |
| 969722 | 修正:「ASP.NET Apps v2.0.50727 (__Total__) \Sessions Active」效能計數器在安裝 Microsoft .NET Framework 3.5 Service Pack 1 後顯示異常高的數值 |
| 969836 | 修正:在基於 .NET Framework 2.0 的 Windows Forms 應用程式中,工作執行緒在呼叫 Control.Invoke 方法時可能會被阻擋,即使 GUI 執行緒處於閒置狀態 |
| 970350 | 修正:當 System.Drawing.FontConverter 物件在 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 中呼叫 FontFamily.Families 屬性時,出現異常錯誤訊息:「記憶體不足」 |
| 970510 | 修正:當你執行基於 .NET Framework 3.5 SP1 的應用程式時,會發生 TypeLoadException 異常 |
| 970924 | 修正:使用 CreateType 方法的應用程式,隨著你在 .NET Framework 2.0 SP2 的動態組合模組中加入更多型別物件,效能會下降 |
| 971030 | 修正:當你執行基於 .NET Framework 2.0 的應用程式,且在 LCG 方法中以虛擬呼叫 IList<T>、IEnumerable<T> 或 ICollection<T> 介面時,會發生存取違規 |
| 971169 | 修正:當你執行 ASP.NET 2.0 網頁應用程式時,如果全域資源檔名包含 culture 名稱「zh-Hant」,會跳出錯誤訊息 |
| 971601 | 修正:監控應用程式的效能計數器在應用程式退出並重新啟動時停止回應,且你在執行 .NET Framework 2.0 的電腦上收到 System.InvalidOperationException 例外 |
| 971988 | 修正:當你執行基於 .NET Framework 2.0 的多領域應用程式,使用物件的終結器啟動 ThreadPool 方法時,CPU 使用率會大幅增加 |
| 971993 | 說明該熱修補程式說明,使 ASP.NET 網頁應用程式在使用會員服務提供者時能支援基於理賠的身份 |
| 972259 | 修正:一個基於 .NET Framework 2.0 SP2 的程式執行緒在啟用並行垃圾回收時會暫停很長一段時間 |
| 972848 | 修正:當檔案收集的資訊並非 .NET Framework 2.0 中的 MiniDumpWithFullMemory 類型時,迷你傾印檔案產生速度較慢且檔案大小比預期大 |
欲了解更多關於雙分支服務的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
960043 .NET Framework 2.0 服務包 2、.NET Framework 3.0 服務包 2 及 .NET Framework 3.5 服務包 1 的雙分支服務
因應措施
要解決這個問題,請遵循以下步驟。
步驟 1
安裝熱修復975954。 要下載MSI更新,請造訪以下MSDN網頁:
http://code.msdn.microsoft.com/KB975954/Release/ProjectReleases.aspx?ReleaseId=3839
步驟 2
修理產品。 我們可以自動為您修復產品,或者您也可以自行修復產品。
幫我修理
要自動執行產品修復,請點擊 「修復」 按鈕。 接著在檔案下載對話框點選執行,然後依照修正精靈的步驟操作。
注意:此巫師僅提供英文版本。 不過,自動修正程式也適用於 Windows 的其他語言版本。
注意:如果你不在有問題的電腦上,可以把自動修復的程式存到隨身碟或光碟,這樣就能在有問題的電腦上執行。
讓我自己修
若要自行修復產品,請從提升的命令提示字元輸入以下適當的命令列:
如果你只安裝了 .NET Framework 2.0 Service Pack 2,請執行以下指令:
msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}此指令修復.NET Framework 2.0 SP2 產品層。如果你安裝了 .NET Framework 3.0 Service Pack 2,請執行以下指令:
msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}這些指令修復.NET Framework 2.0 SP2 與 .NET Framework 3.0 SP2 產品層。
如果你安裝了 .NET Framework 3.5 Service Pack 1,請執行以下指令:
msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}
msiexec /f {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}這些指令修復.NET Framework 2.0 SP2、.NET Framework 3.0 SP2 以及.NET Framework 3.5 SP1 產品層。
當你執行這些指令修復產品層時,該產品層的所有功能 (.NET Framework 2.0 SP2、.NET Framework 3.0 SP2 和 .NET Framework 3.0 SP1) 都會重新評估安裝狀態。
這樣就能解決由基線器問題造成的問題,讓更新能成功套用其有效載荷。
欲了解更多如何執行使用提升權限的指令,請造訪以下 Microsoft 網頁:
http://windows.microsoft.com/en-US/windows7/Command-Prompt-frequently-asked-questions
步驟3
你可能需要重新安裝已更新並更換的熱修丁,如「原因」部分所述。 要判斷是否需要重新安裝更新的熱修正,請查看知識庫文章中「熱修正更換資訊」部分,針對你安裝的熱修正。
更多資訊
欲了解更多 Windows 安裝程式支援的命令列交換器資訊,請造訪以下 MSDN 網頁:
命令列選項 欲了解更多關於 Windows 安裝程式的資訊,請造訪以下 MSDN 網頁: