訓練
模組
引導式專案 - 使用 Visual Studio Code 對 C# 主控台應用程式中的例外狀況進行偵錯和處理 - Training
本課程模組會引導您完成 C# 主控台應用程式的程式碼驗證流程。 實際操作活動提供識別邏輯問題、偵錯應用程式,以及實作例外狀況處理的體驗。 已提供逐步指示。
原始產品版本: Visual C++
原始 KB 編號: 2028526
使用 Microsoft Visual Studio 建置 ASP.NET 專案時,您可能會隨機看到如下的錯誤訊息:
編譯程式錯誤訊息:CS0433:類型 'ASP.summary_common_controls_notes_ascx' 同時存在於 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\Book_Details\abc12345\def8910\App_Web_msftx123.dll' 和 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\Book_Details\abc12345\def8910\App_Web_msfty456.dll'
描述:在編譯服務此要求所需的資源期間發生錯誤。 請檢閱下列特定錯誤詳細數據,並適當地修改原始程式碼。
來源錯誤:第 100 行: </div>
行 101: <h3 class=“entry”>New Notes</h3>
行 102: <bni:details id=“details” runat=“server” />
行 103: <span class=“RedZone”>1450</span>
第 104 行: <p>摘要。</p>
來源檔案:d:\HTTP\post\publisher\default.aspx 行:102
下列各節將討論此錯誤可能發生的常見案例。
描述: 此錯誤的常見原因是相同 Web 應用程式 bin 資料夾中有兩個元件包含兩個類別定義,但具有相同類別名稱。 如果編譯成單一元件Default.aspx多個Default.aspx,就會發生這種情況。 通常,當主版頁面 (Default.master) 和預設 ASPX 頁面 (Default.aspx) 都宣告 _Default 類別時,就會發生這種情況。
解決方案: 變更主版頁面的類別名稱(在大部分情況下為_Default),然後重建專案。 請務必解決類別之間的任何命名衝突。
描述: Visual Studio 中的參考路徑可用來指定專案所使用元件參考的資料夾路徑。 路徑可能包含元件,而且元件包含相同的類別名稱。 它可能會有多個參考新增至相同的元件(版本或名稱可能不同),導致命名衝突。
解決方案: 移除舊版參考。 在 Visual Studio 中,以滑鼠右鍵按兩下您的網站,然後檢查 屬性中的 [參考 ]。
描述: 根據預設,編譯 ASP.NET Web 應用程式時,編譯的程式代碼會放在 [暫存 ASP.NET 檔案] 資料夾中。 根據預設,會將訪問許可權授與 ASP.NET 本機用戶帳戶。 帳戶具有存取已編譯程序代碼所需的高信任許可權。 默認許可權可能會有一些變更,而且變更可能會導致版本設定衝突。 另一個可能性是防病毒軟體可能會意外鎖定元件。
解決方案: 清除所有內容的暫存 ASP.NET 檔案資料夾。
描述: 當 web.config 檔案中的 batch 屬性設定為 True 時,它會消除第一次存取檔案時所需的編譯所造成的延遲。 ASP.NET 以批次模式預先編譯所有未編譯的檔案。 此批次模式會在檔案第一次編譯時造成延遲。
將 batch 屬性設定為 False 可能會公開應用程式中存在但未回報的任何遮罩編譯錯誤。 更重要的是,它會告訴 ASP.NET 將個別.aspx/.ascx 檔案動態編譯成個別元件,而不是將個別元件編譯成單一元件。
解決方案: 在 web.config 的 <編譯> 區段中設定 batch=False。此動作應該視為暫時性解決方案。 編譯區段中的 Batch=False 對 Visual Studio 中應用程式的建置時間有顯著的效能影響。
描述: 修改 ASP.NET 應用程式的web.config 檔案,或變更 bin 資料夾中的檔案(例如新增、刪除或重新命名),會導致AppDomain重新啟動。 當這些動作發生時,所有會話狀態都會遺失,而快取的專案會在網站重新啟動時從快取中移除。 問題可能是因為 Web 應用程式中的狀態不一致所造成。
解決方案: 藉由觸控 Web.config 檔案來觸發 AppDomain 重新啟動。
描述: 您可以將原始程式碼儲存在 App_Code 資料夾中,而且程式代碼將在運行時間自動編譯。 產生的元件可供 Web 應用程式中的任何其他程式代碼存取。 因此,App_Code資料夾的運作方式與 Bin 資料夾非常類似,不同之處在於您可以將原始程式碼儲存在其中,而不是編譯的程式代碼。 當原始程式檔中有變更時,類別將會重新編譯。 如果因元件過期而發生衝突,強制重新編譯可能會解決問題。
解決方案: 觸控 Bin 或App_Code資料夾中的檔案,以觸發完整重新編譯。
訓練
模組
引導式專案 - 使用 Visual Studio Code 對 C# 主控台應用程式中的例外狀況進行偵錯和處理 - Training
本課程模組會引導您完成 C# 主控台應用程式的程式碼驗證流程。 實際操作活動提供識別邏輯問題、偵錯應用程式,以及實作例外狀況處理的體驗。 已提供逐步指示。
文件
編譯器警告 (層級 1) CS1685 - C# reference
編譯器警告 (層級 1) CS1685
編譯器錯誤 CS0433
本文說明如何在 WebForm 中註冊元件,以使用自定義控件。
瞭解如何針對可能由應用程式無法尋找參考元件以外的專案所造成的中斷參考進行疑難解答。