在Visual Studio上開發Node.js程序(2)——遠程調試及發佈到Azure

【題外話】html

上次介紹了VS上開發Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了很是方便的開發和調試功能,固然不少狀況下因爲平臺限制等緣由須要在其餘機器上運行程序,進而須要遠程調試功能,不過還好,NTVS提供的遠程調試也很是方便。node

 

【系列索引】web

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

 

【文章索引】json

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

 

【1、NTVS遠程調試】windows

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後跟遠程調試代理的參數,而後跟待調試代碼文件,最後跟待調試代碼文件的參數,其中遠程調試代理支持的參數有:this

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

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

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

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

因此若是按默認設置的話,咱們只須要把RemoteDebug.js與待執行的代碼一同複製到目標機器上,而後執行以下語句就能夠了:

node RemoteDebug.js server.js

若是正確的話會出現相似下圖的內容:

而後在VS中選擇「工具」->「附加到進程」,而後在傳輸裏選擇「Node remote debuggin (unsecured)」(以下圖)。

而後在限定符裏輸入目標機器的地址和端口而後鍵入回車便可,正確的話將會在下方出現目標機器(以下圖),最後點擊「附加」便可。

接下來就如同在本地調試同樣很是簡單了。

 

【2、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/
相關文章
相關標籤/搜索