摘要:ASP.NET編譯問題的公開Hotfix修補檔發佈了
【原文位址】Public Hotfix Patch Available for ASP.NET Compilation Issues
【原文發表日期】 Wednesday, April 11, 2007 10:39 PM
過去的一年裡,我們發現和修補了大家報告遇上的幾個ASP.NET 2.0編譯缺陷。
引發這些缺陷的原因有多個,但根本原因通常跟專案的結構有關,這些專案有特別的跨頁面的迴圈依賴。這些缺陷往往在系統上發生大規模的檔案變化時(譬如,一個抗病毒程式同時更新很多檔案上的所有時間戳)會被觸發。
出錯訊息的例子:
下面這些出錯訊息,是你遇上這些編譯問題時,你也許看到的執行時異常型別的例子:
(無法將ASP.masterpage_master型別的對象轉換成ASP.masterpage_master型別)
或者:
(無法載入檔案或程式集「App_Web_e9dbmaj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null」或它的相依類別。系統找不到指定的檔案。)
或者:
(編譯錯誤訊息:CS0006:找不到中介資料檔案「C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\Temporary ASP.NET Files\cms.web\44e73607\b028acb3\App_global.asax.fakktchx. dll」。)
或者:
(System.InvalidOperationException: 找不到當前頁面的資源類別。請檢查資源檔案確實存在,然後再試。)
這些問題的臨時解決方案:
如果你有一個應用開始拋出上面這些錯誤中的某一個時,你通常可以馬上施用一個臨時解決方案,打開你應用的web.config檔案,將 <compilation> 節的 batch 屬性設置成false:
<system.web>
<compilation debug=」false」 batch=」false」></compilation>
</system.web>
</configuration>
這告訴ASP.NET把單個的 .aspx/.ascx 檔案動態編譯成單獨的程式集,這會避免觸發異常的迴圈引用的問題。
你也可以使用下列步驟,刪去「Temporary ASP.NET Files」快取裡的檔案,來臨時解決這個問題:
- 點擊Windows開始按鈕,點擊執行,輸入 iisreset /stop,然後點擊OK。
- 打開 驅動字母: WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 目錄。
- 刪除第二步裡你找出的目錄裡的所有檔案和所有資料夾。
- 點擊開始,點擊執行,輸入 iisreset /start,然後點擊OK。
你可以在Microsoft KB文章 #934839 (機器翻譯的中文版)裡找到這些臨時方案的細節。
這些問題的QFE HotFix修補檔現在可以下載了:
【譯註:QFE=Quick Fix Engineering,快速修復專案】
作為上面施用配置檔案臨時方案的替代方案,你現在也可以下載和施用微軟的一個QFE HotFix 修補檔,該修補檔修復了我們看到別人報告的編譯問題。
這個編譯問題的QFE HotFix修補檔的直接下載連結在這裡。你可以在這裡的這個網頁上找到其他常見的Visual Studio 和.NET 框架 QFE HotFixes。
重要注意事項:有不少人有時問我,他們是否應該主動安裝QFE HotFixes(在他們遇上問題之前)。我總是建議別這麼做,因為QFE hotfixes只經過有針對性的測試以確認解決了一個特定的問題,但並不經過整個產品的end to end sign-off (從頭至尾,每一步都有簽名同意,沒問題才放行)。因此,我建議你只在你遇上上面這些針對性的問題時,你才施用它。
聯繫微軟產品支援:
如果你在安裝修補檔時有什麼問題,或在安裝後你還看到編譯問題的話,你需要聯繫微軟產品支援,他們可以幫你進一步偵錯問題。微軟產品支援的電話是免費的,假如是針對產品的缺陷的話(無論是QFE HotFix請求還是你遇上的產品缺陷)。你可以在這個網頁上找到如何聯繫
微軟產品支援的細節(該網頁允許你按國家來查詢本地電話號碼)。
Visual Studio的大多數版本帶有免費的產品支援券(product support ticket)(譬如,VS Pro with MSDN Premium每個訂閱都有4個支援券)。你可以使用這些支援券得到 .NET 或 Visual Studio方面的幫助(譬如:幫你尋找你自己編碼中的缺陷或性能問題,或者學習如何使用框架或 IDE中的某個特性)。
微軟產品支援裡有些非常,非常優異的專案師,如果你有問題的話,與他們合作將是非常愉快的事情。下面是些我強烈建議你訂閱的 .NET 框架/ Visual Studio空間裡的精彩部落格:
- Tess: http://blogs.msdn.com/tess/
- Doug: http://blogs.msdn.com/dougste/
- Carlo: http://blogs.msdn.com/carloc/
- Rahul: http://blogs.msdn.com/rahulso/
- Jerry: http://blogs.msdn.com/jorman/
- Johan: http://blogs.msdn.com/johan/
- Todd: http://blogs.msdn.com/toddca/
如果你遇上你無法解決的問題,或者在生產性應用中遇上你需要急救的問題,給微軟產品支援打個電話,你會遇上像上面列出的名單裡的人,給你連上一個偵錯器,幫你診斷出問題所在。
謝謝,
Scott