HOW TO:啟用 ASP.NET 應用程式的偵錯
更新:2007 年 11 月
這個主題適用於:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro/Team |
表格圖例:
套用 |
|
不套用 |
|
預設隱藏的命令。 |
若要啟用偵錯,您必須在 [專案屬性] 頁和應用程式的 web.config 檔中啟用它。
注意事項: |
---|
您所看見的對話方塊與功能表命令可能會與 [說明] 中所描述的有所不同,視您所使用的設定或版本而定。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。 |
若要在專案屬性內啟用 ASP.NET 偵錯 (Visual Basic/C#)
在 [方案總管] 中,以滑鼠右鍵按一下 Web 專案的名稱,並選取 [屬性頁]。
[<Project> 屬性頁] 隨即出現。
按一下 [Web] 索引標籤。
選取 [偵錯工具] 底下的 [ASP.NET] 核取方塊。
若要在 web.config 檔中啟用偵錯
使用任何標準文字編輯器或 XML 剖析器開啟 web.config 檔。
- 但是您不能使用 Web 瀏覽器從遠端存取檔案。基於安全的理由,ASP.NET 會設定 Microsoft IIS 以協助防止瀏覽器直接存取 Web.config 檔案。如果您嘗試使用瀏覽器存取組態檔,將會收到 HTTP 存取錯誤 403 (禁止)。
Web.config 是 XML 檔案,因此包含以標記 (Tag) 標示的巢狀區段。下列範例示範常見的 Web.config 檔案。遵循下列步驟修改檔案:
找出 <compilation> 標記 (Tag)。此標記表示 <compilation> 區段的開頭。
在 <compilation> 標記中,將會建立 debug 屬性。下列範例中,debug 是在 <compilation> 標記中指定的第二個屬性,而其順序並不重要。
這些屬性都是區分大小寫,因此請確定指定的是 "debug",而不是 "Debug" 或 "DEBUG"。
將 debug 設定為 true,如下列程式碼範例所示:
如果您沒有將 debug 屬性設定為 true,並且嘗試啟動偵錯工作階段,則會出現對話方塊,提供建立已設定該屬性的 web.config 檔。請接受,然後繼續偵錯。
範例
<configuration>
<system.web>
<compilation defaultLanguage="VB"
debug="true"
numRecompilesBeforeAppRestart="15">
<compilers>
<compiler language="VB;VBScript"
extension=".cls"
type="Microsoft.VisualBasic.VBCodeProvider,system, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" />
< compiler language="C#;Csharp"
extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider,system, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilers>
<assemblies>
"" <add assembly="ADODB" />
<add assembly="*" />
</assemblies>
<namespaces>
<add namespace="System.Web" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</compilation>
</system.web>
</configuration>
穩固程式設計
ASP.NET 會自動偵測對 Web.config 檔案的任何變更,並套用新的組態設定。您不需要重新啟動電腦或 IIS 伺服器來使變更生效。
網站可以包含多個虛擬目錄和子目錄,而 Web.config 檔可能會存在於每一個目錄。ASP.NET 應用程式會繼承自 URL 路徑中較高層級的 Web.config 檔案之設定。階層式組態檔可讓您同時變更數個 ASP.NET 應用程式的設定,例如,階層架構中在它之下的所有應用程式。但是,如果 debug 設定在階層架構中較低層級的檔案,則會覆寫較高層級的值。
例如,您可以在 www.microsoft.com/aaa/Web.config 中指定 debug="true",則在 aaa 資料夾或 aaa 的任何子資料夾中的所有應用程式,將會繼承這個設定。所以如果 ASP.NET 應用程式位於 www.microsoft.com/aaa/bbb,它就會繼承這個設定,www.microsoft.com/aaa/ccc、www.microsoft.com/aaa/ddd 等位置中的任何 ASP.NET 應用程式也一樣,依此類推。唯一的例外狀況是其中一個應用程式利用本身較低層級的 Web.config 檔來覆寫設定。
啟用偵錯模式將大幅影響 ASP.NET 應用程式的效能。在您部署發行應用程式或執行效能措施之前請記得停用偵錯模式。