文章出處

【題外話】

上次介紹了VS上開發Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的開發和調試功能,當然很多情況下由于平臺限制等原因需要在其他機器上運行程序,進而需要遠程調試功能,不過還好,NTVS提供的遠程調試也非常方便。

 

【系列索引】

  1. 在Visual Studio上開發Node.js程序——NTVS介紹及使用
  2. 在Visual Studio上開發Node.js程序(2)——NTVS遠程調試及發布到Azure

 

【文章索引】

  1. NTVS遠程調試
  2. NTVS部署到Azure

 

【一、NTVS遠程調試】

NTVS提供了一個遠程調試代理(Remote Debug Proxy)來實現遠程調試,實際上就是不讓Node.js直接運行要調試的程序,而是去運行遠程調試代理,再由代理去執行程序以及與VS進行通信。

獲取NTVS提供遠程調試代理可以在VS里點擊“工具”->“Node.js Tools”->“Remote Debugging Proxy”->“Open Container Folder”,文件夾中的RemoteDebug.js就是了。

RemoteDebug.js的參數為:

node RemoteDebug.js [args] <script to debug> [script args]

即RemoteDebug.js后跟遠程調試代理的參數,然后跟待調試代碼文件,最后跟待調試代碼文件的參數,其中遠程調試代理支持的參數有:

-localport <port num>:本機機器(NTVS所在機器)的端口號,默認為5859

-machineport <port num>:目標機器(執行程序的機器)的端口號,默認為5858

-waitforattach:當附加成功后才執行程序,默認為在目標機器上執行完腳本立即執行程序

-breakatentrypoint:從第一條入口代碼處斷點,即執行待調試代碼時使用--debug-brk參數,默認為--debug

所以如果按默認設置的話,我們只需要把RemoteDebug.js與待執行的代碼一同復制到目標機器上,然后執行如下語句就可以了:

node RemoteDebug.js server.js

如果正確的話會出現類似下圖的內容:

然后在VS中選擇“工具”->“附加到進程”,然后在傳輸里選擇“Node remote debuggin (unsecured)”(如下圖)。

然后在限定符里輸入目標機器的地址和端口然后鍵入回車即可,正確的話將會在下方出現目標機器(如下圖),最后點擊“附加”即可。

接下來就如同在本地調試一樣非常簡單了。

 

【二、NTVS部署到Azure】

部署Node.js的方式有很多種,比如可以部署在Azure的網站或者云服務(Web Role方式)上等,目前NTVS只支持前者。由于Azure網站是通過IIS上的iisnode模塊實現對Node.js支持的,所以除了部署程序文件以外,還需要配置iisnode,也就是配置Web.config文件。在NTVS里,對Azure網站的支持體現在其兩個Azure項目模板中,即在使用這兩個項目模板創建項目后,會自動生成配置文件,以方便部署使用。當然傳統的方法比如自己上傳文件或通過代碼庫上傳文件(參見相關鏈接3)部署到Azure網站或者通過Web Role方式部署到云服務(參見相關鏈接4)等就不再贅述,微軟網站上都有詳細的文章。

對于NTVS創建的Azure項目,默認包括兩個Web.config文件,分別是本地測試用的Web.config以及部署到Azure上的Web.cloud.config,兩個可以分別修改,其中后者在上傳時會自動修改名稱為“Web.config”。

發布過程與其他項目一樣,可以自己創建配置文件發布到指定文件夾或者FTP等等都可以。對于Windows Azure的項目,可以在發布對話框的第一步“配置文件”頁面中選擇“導入”按鈕,然后選擇“從 Windows Azure 網站導入”,然后點擊登錄就可以輸入自己的Windows Azure的用戶名和密碼,登錄成功后就會如下圖所示,然后在下方選擇要發布的Azure網站即可。

確定后VS會自動從Windows Azure上下載指定網站的配置信息,然后在第二步的“連接”中設置好連接信息,然后一路下一步就可以將項目文件部署到Azure網站上了。其中在最后一步,可以點擊“開始預覽”查看或選擇要上傳的文件,對于Azure網站,其實只需要上傳所有js文件、Web.config文件以及用到的相關靜態文件即可,bin目錄及package.json和README.md都不需要上傳。其中配置文件僅選擇Web.config文件即可,發布時會自動使用Web.cloud.config文件的,而如果選擇Web.cloud.config文件的話,則上傳后的文件名為“Web.cloud.config”。

不過不知道為什么在我這,在發布成功后訪問Azure網站會提示“You do not have permission to view this directory or page.”,就跟沒有正確配置Web.config一樣,所以只能重新上傳一遍Web.config來解決。不過如果不修改Web.config文件話,之后發布時僅發布js等文件就可以了。

 

【相關鏈接】

  1. Debugging Node.js running on Linux:http://nodejstools.codeplex.com/wikipage?title=NodeJSOnLinuxOnAzure
  2. Azure Deployment:http://nodejstools.codeplex.com/wikipage?title=AzureDeployment
  3. 構建 Node.js 網站并部署到 Windows Azure:http://www.windowsazure.cn/zh-cn/develop/nodejs/tutorials/create-a-website-(mac)/
  4. 構建 Node.js 應用程序并將其部署到 Windows Azure 云服務:http://www.windowsazure.cn/zh-cn/develop/nodejs/tutorials/getting-started/

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()