遠端偵錯 Azure 上的 Website

來源:互聯網
上載者:User

標籤:

讓我們先檢查一下使用的 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。

 

原理簡介

如果我們要使用運行在機器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 版本,並告訴雲端開啟一些調試所需的連接埠。

下面就讓我們一步步的踏上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 程式經常會碰到讓人很尷尬的一幕:正好有另外的一個使用者在使用這個功能(可能是測試人員),此時不要太吃驚喔!

遠端偵錯 Azure 上的 Website

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.