調試 ASP.NET Core 2.0 源代碼

在Visual Studio 2017中能夠經過符號以及源連接,很是方便對 ASP.NET Core 2.0中源代碼進行調試。在這篇文章中,咱們將重點介紹如何使用源連接對ASP.NET Core源進行調試。html

什麼是源連接?
和我同樣,您可能已經注意到在編譯代碼時,會建立的PDB文件。這些文件保存了符號信息,這些信息能夠選擇用於支持對外部源代碼的調試。某些類型的符號文件可能包含一些源代碼或源代碼的映射。服務器

很長一段時間之前,Microsoft已經託管了符號服務器,它們保存Microsoft產品(如.NET Framework和ASP.NET Core)已發佈的符號文件。Visual Studio支持動態下載符號。爲此,您必須禁用「調試」 -> 「常規」選項中的「啓用僅個人代碼」選項。默認狀況下,此選項在Visual Studio中是啓用的。框架

 

有關符號、符號服務器等的更多信息,請參閱此MSDN連接。編輯器

源連接容許您在符號文件中嵌入被調用方法的名稱和位置清單,它能夠識別包含代碼的文件以及能夠從哪裏檢索文件。ASP.NET Core(不是.NET Core)如今支持源連接,並提供到GitHub上託管代碼的連接。性能

啓用和使用源連接
首先的要求是將Visual Studio 2017更新到最新的版本(15.3),該更新添加了源連接的支持。若是安裝此項,在「調試」 -> 「常規」選項中,您將看到「啓用源連接支持」。測試

 

除了確保「啓用僅個人代碼」禁用外,您還必須啓用Microsoft符號服務器,在「調試」 -> 「符號」選項中,能夠從符號文件位置列表中啓用「Microsoft符號服務器」。debug

 

啓用符號服務器時,您須要接受調試時可能引入的性能影響。調試

 

設置完成後,準備調試ASP.NET Core源代碼。爲了測試這個,我在Visual Studio中建立了一個默認的ASP.NET Core 2.0 MVC項目。而後我在HomeController上爲Index方法添加了一個斷點。而後開始調試應用程序。第一次調試時,您可能會看到這樣的消息。htm

 

這是正在下載的符號文件,可能須要一段時間才能完成。blog

一旦應用程序運行到您代碼斷點處,您就能夠導航到調用堆棧,以看到正在執行的全部外部ASP.NET代碼。

 

若是您雙擊任何這些調用,編輯器將使用符號來肯定該代碼所在的框架位置。使用符號文件中的連接,Visual Studio將從GitHub下載源文件。當源連接須要下載源代碼時,您會看到以下警告對話框:

 

您能夠選擇第一項「下載源並繼續調試」選項,並繼續使用該文件進行調試。您能夠選擇第二個選項,將下載該文件,並禁用下次文件下載的警告。

下載完源文件後,它將顯示在您選擇堆棧對應的位置。

 

您還能夠在該文件中的其它位置添加本身的斷點,而後在調試應用程序時將其設置爲命中。即便咱們中止調試並從新啓動,這彷佛仍然是有效的。

 

總結
Very nice ,在ASP.NET Core中調試外部源碼很是容易。經過這個功能能夠得到更多的價值,讓咱們能夠調試ASP.NET Core源代碼,瞭解內部工做方式。

參考資料:

Debugging ASP.NET Core 2.0 Source Code

原文地址:http://www.cnblogs.com/tdfblog/p/debugging-asp-net-core-2-source.html