遠程調試 Azure Web App

當咱們將 Web App 部署在 Azure 上時,若是可以實現遠程調試,將會極大的提升咱們修復 bug 的效率。Visual Studio 一向以功能強大、易用著稱,固然能夠實現基於 Azure 應用的建立、發佈和調試。接下來就讓咱們一塊兒看看如何使用 Visual Studio 遠程調試部署在 Azure 上的 Web App,以及一些常見的注意事項。html

 

注意工具的版本

在開始正文前讓咱們先檢查一下使用的 Azure SDK 版本和 Visual Studio 版本。根據MSDN的介紹,Azure 的遠程調試功能是在 Azure SDK 2.2 中加入的,因此請確保您的機器上安裝了2.2或者是更新的 Azure SDK。安全

關於 Visual Studio 的版本問題,MSDN上的描述也頗有趣。大意是使用 Visual Studio 2012 已經能夠遠程調試 Azure 上的 Website 了,可是 Visual Studio 2013 又對此作了不少的提高。我的理解最好使用 VS2013,或者更新的版本。服務器

筆者在寫本文時的實驗環境是 VS2015 update3 和 Azure SDK 2.9。app

 

原理簡介

若是咱們要使用運行在機器A上的 Visual Studio 調試另一臺機器B上運行的一個程序 myapp(機器B上沒有安裝 visual studio),咱們不只要把附帶 pdb 文件的 myapp 程序部署到機器B上,還要在機器B上運行一個調試輔助程序 msvsmon.exe。運行 msvsmon.exe 後,Visual Studio 就可以 attach 住 myapp 並使用其 pdb 文件進行調試,這就是 Visual Studio 的遠程調試功能。而 msvsmon.exe 程序必須與特定版本的 Visual Studio 相匹配才能工做,因此它被集成在 Visual Studio 的安裝包中,用時去 Visual Studio 的安裝目錄中搜索就能找到。工具

遠程調試 Azure Web App 和上面的過程是同樣的,只不過咱們須要經過雲端的配置來指定 msvsmon.exe 對應的 Visual Studio 版本,並告訴雲端打開一些調試所需的端口。post

下面就讓咱們一步步的踏上VS遠程調試 Azure App 之旅。性能

 

設置 Deployment credentials

當咱們部署網站時就須要建立這個帳號,這個帳號既能夠用來部署又能夠用來遠程調試。學習

 

 

下載發佈用的 publishing profile

Publishing profile 是用於進行發佈操做的配置文件。當咱們要發佈一個網站或者是一個 Web 應用時,須要不少的基本信息,好比服務器在哪裏?用戶名是什麼?密碼是什麼?等等…這些信息通通保存在 publishing profile 文件中,有興趣的朋友能夠打開這個文件看看裏面的詳細信息。測試

不管調試與否,咱們都要把應用發佈到 Azure 上去,因此先下載 publishing profile:網站

 

 

容許遠程調試 Web App

設置 Application settings 中的遠程調試爲容許狀態,並指定用於遠程調試的 Visual Studio 版本。相關內容已經在原理部分講過,這裏說些須要注意的內容:

這兩項設置是有期限的,在48小時以後默認會被關掉!

緣由主要是性能和安全,因此建議你們在調試完成後當即關閉遠程調試功能。

 

 

發佈調試版本的 Web App

Visual Studio 的調試功能依賴於編譯過程當中產生的 pdb 文件。下面的設置就是讓 Web App 在發佈時編譯爲 debug 版本併產生對應的 pdb 文件。如今的 Visual Studio 已經能夠智能的去找 pdb 文件了,因此這裏咱們不用關心 pdb 文件是被髮布到了雲端仍是保存在本地(簡單就好)!

先導入剛纔下載的 publishing profile 文件:

 

在 Settings 中選擇 Configuration 爲 」Debug」:

 

而後點擊 「Publish」按鈕進行發佈。

 

Attach 遠程進程

在 Attach 對話框中輸入網站 URL 中去掉」http://」的部分,而後在彈出的對話框中輸入咱們在最開始處建立的用戶名和密碼。

 

在列出的進程列表中選擇」w3wp.exe」:

 

點擊」Attach」按鈕就能夠了。

心急的同窗可要注意了,這裏可能須要等待上那麼一小會兒…

 

開始遠程調試 Web App

當你看到設置的斷點變成可用狀態時,就能夠嘗試去觸發一個斷點了。

 

好了,看上去還不賴,可以工做了!

注意,實際使用過程當中可能並不會這麼的順利。主要是在 attach 的時候,可能須要多試幾回才能成功。調試的過程當中速度也是個問題,感受仍是有點慢。

另外,調試 Web 程序常常會碰到讓人很尷尬的一幕:正好有另外的一個用戶在使用這個功能(多是測試人員),此時不要太吃驚喔!

 

相關閱讀:

最全的Windows Azure學習教程彙總

Azure Blob Storage 基本用法 -- Azure Storage 之 Blob

Azure Queue Storage 基本用法 -- Azure Storage 之 Queue

Azure File Storage 基本用法 -- Azure Storage 之 File

Azure Table storage 基本用法 -- Azure Storage 之 Table

相關文章
相關標籤/搜索