幾個ASP.NET 2.0編譯缺陷

來源:互聯網
上載者:User

過去的一年裡,我們發現和修補了大家報告遇上的幾個ASP.NET 2.0編譯缺陷。

引發這些缺陷的原因有多個,但根本原因通常跟項目的結構有關,這些項目有特別的跨頁面的循環相依性。這些缺陷往往在系統上發生大規模的檔案變化時(譬如,一個抗病毒程式同時更新很多檔案上的所有時間戳記)會被觸發。

出錯資訊的例子:

下面這些出錯資訊,是你遇上這些編譯問題時,你也許看到的運行時異常類型的例子:

Unable to cast object of type ' ASP.masterpage _master' to type ' ASP.masterpage _master'.
(無法將 ASP.masterpage _master類型的對象轉換成 ASP.masterpage _master類型)

或者:

Could not load file or assembly 'App_Web_e9dbmaj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
(無法裝載檔案或程式集“App_Web_e9dbmaj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的依賴向。系統找不到指定的檔案。)

或者:

Compiler Error Message: CS0006: Metadata file 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary  ASP.NET Files\cms.web\44e73607\b028acb3\App_global.asax.fakktchx.dll' could not be found
(編譯錯誤資訊:CS0006:找不到中繼資料檔案“C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\Temporary ASP.NET Files\cms.web\44e73607\b028acb3\App_global.asax.fakktchx. dll”。)

或者:

System.InvalidOperationException: The resource class for this page was not found. Please check if the resource file exists and try again
(System.InvalidOperationException: 找不到當前頁面的資源類。請檢查資源檔確實存在,然後再試。) 這些問題的臨時解決方案:

如果你有一個應用開始拋出上面這些錯誤中的某一個時,你通常可以馬上施用一個臨時解決方案,開啟你應用的web.config檔案,將 <compilation> 節的 batch 屬性設定成false:

<configuration>

   <system.web>
       <compilation debug="false" batch="false"></compilation>
   </system.web>

</configuration>

這告訴ASP.NET把單個的 .aspx/.ascx 檔案動態編譯成單獨的程式集,這會避免觸發異常的循環參考的問題。

你也可以使用下列步驟,刪去“Temporary ASP.NET Files”緩衝裡的檔案,來臨時解決這個問題:

  1. 點擊Windows開始按鈕,點擊運行,輸入 iisreset /stop,然後點擊OK
  2. 開啟 驅動字母: WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 目錄。
  3. 刪除第二步裡你找出的目錄裡的所有檔案和所有檔案夾。
  4. 點擊開始,點擊運行,輸入 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/

如果你遇上你無法解決的問題,或者在生產性應用中遇上你需要急救的問題,給微軟產品支援打個電話,你會遇上象上面列出的名單裡的人,給你連上一個調試器,幫你診斷出問題所在。

謝謝

【原文地址】Public Hotfix Patch Available for ASP.NET Compilation Issues
【原文發表日期】 Wednesday, April 11, 2007 10:39 PM

過去的一年裡,我們發現和修補了大家報告遇上的幾個ASP.NET 2.0編譯缺陷。

引發這些缺陷的原因有多個,但根本原因通常跟項目的結構有關,這些項目有特別的跨頁面的循環相依性。這些缺陷往往在系統上發生大規模的檔案變化時(譬如,一個抗病毒程式同時更新很多檔案上的所有時間戳記)會被觸發。

出錯資訊的例子:

下面這些出錯資訊,是你遇上這些編譯問題時,你也許看到的運行時異常類型的例子:

Unable to cast object of type ' ASP.masterpage _master' to type ' ASP.masterpage _master'.
(無法將 ASP.masterpage _master類型的對象轉換成 ASP.masterpage _master類型)

或者:

Could not load file or assembly 'App_Web_e9dbmaj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
(無法裝載檔案或程式集“App_Web_e9dbmaj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的依賴向。系統找不到指定的檔案。)

或者:

Compiler Error Message: CS0006: Metadata file 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary  ASP.NET Files\cms.web\44e73607\b028acb3\App_global.asax.fakktchx.dll' could not be found
(編譯錯誤資訊:CS0006:找不到中繼資料檔案“C:\WINDOWS\Microsoft.NET\Framework\v2.0. 50727\Temporary ASP.NET Files\cms.web\44e73607\b028acb3\App_global.asax.fakktchx. dll”。)

或者:

System.InvalidOperationException: The resource class for this page was not found. Please check if the resource file exists and try again
(System.InvalidOperationException: 找不到當前頁面的資源類。請檢查資源檔確實存在,然後再試。) 這些問題的臨時解決方案:

如果你有一個應用開始拋出上面這些錯誤中的某一個時,你通常可以馬上施用一個臨時解決方案,開啟你應用的web.config檔案,將 <compilation> 節的 batch 屬性設定成false:

<configuration>

   <system.web>
       <compilation debug="false" batch="false"></compilation>
   </system.web>

</configuration>

這告訴ASP.NET把單個的 .aspx/.ascx 檔案動態編譯成單獨的程式集,這會避免觸發異常的循環參考的問題。

你也可以使用下列步驟,刪去“Temporary ASP.NET Files”緩衝裡的檔案,來臨時解決這個問題:

  1. 點擊Windows開始按鈕,點擊運行,輸入 iisreset /stop,然後點擊OK
  2. 開啟 驅動字母: WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 目錄。
  3. 刪除第二步裡你找出的目錄裡的所有檔案和所有檔案夾。
  4. 點擊開始,點擊運行,輸入 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/

如果你遇上你無法解決的問題,或者在生產性應用中遇上你需要急救的問題,給微軟產品支援打個電話,你會遇上象上面列出的名單裡的人,給你連上一個調試器,幫你診斷出問題所在。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.