不知道大家有沒有遇到過這種情況,剛開發(fā)完的程序,明明在本機能夠好好的運行,可是部署到服務器過分發(fā)給用戶時,總是出現(xiàn)莫名其妙的錯誤。
一時半會又看不出問題來,怎么辦呢?難道只能在服務器或是客戶電腦上裝一個vs、跟一下代碼嗎?
其實不用的,vs有一個遠程調(diào)試的功能。
這個功能是這樣的,程序在其他的電腦上運行,但是我們可以在本地電腦上進行斷點跟蹤。
下面以vs2012為例,為大家介紹一下無身份驗證的遠程調(diào)試(如果要用有身份驗證,又沒有域環(huán)境,參見最后的總結(jié)),同時也說一下vs2012與以前版本在遠程調(diào)試功能方面的改進。
1、從開始菜單中打開“Remote Debugger”文件夾,打開之后,你會看到兩個文件夾,這個是要復制到遠程計算機上的,只需要根據(jù)具體環(huán)境從兩個里選出一個復制過去就好了。
2、復制完之后,在遠程電腦上打開vs遠程調(diào)試監(jiān)視器(“msvsmon.exe”),會出現(xiàn)下圖中的窗口,點擊選項菜單,選中無身份驗證和允許任何用戶進行調(diào)試。
然后點擊確定,這樣,遠程計算機就設置好了。當然,別忘了在遠程計算機上啟動你要調(diào)試的程序。
3、然后,我們在自己的電腦上,打開項目,從調(diào)試菜單打開附加到進程窗口,選擇遠程,輸入遠程計算機的ip,然后回車;
再選擇要調(diào)試的程序,點擊附加按鈕。好了,點個斷點,試試吧。
4、vs2012與之前版本的不同。
看看這張圖,是不是很熟悉,不就是在遠程計算機上的設置窗口嘛。呵呵,再仔細看看,這個張圖和前面那張是不一樣的?吹健皟H限本機”幾個字了吧。
這張圖是從vs2010的遠程調(diào)試監(jiān)視器中截下來的,這個僅限本機是什么意思呢?經(jīng)過幾次試驗,我得出一個結(jié)論,這個“本機”的意思,應該是“本地代碼”,
和“托管代碼”是想對應的。如果用vs2012之前的版本,也按照前三節(jié)所說的方法設置,是沒有辦法“斷點”的,因為我們要調(diào)試的代碼是“托管代碼”。
那么,此時應該怎么設置呢?我們只能選擇“Windows 身份驗證”那個單選框了。附加的時候,也不能再選擇遠程了,只能選擇“默認”。
總結(jié)一下,如果用vs2012之前的版本進行遠程調(diào)試需要注意的幾點:
a、不能選擇無身份驗證
b、如果不是域環(huán)境,遠程計算機和本地計算機必須同時使用相同的帳號密碼
c、遠程計算機上的程序文件要相應包含“.pdb”文件