2008-12-22 17 views
9

我在通過Internet訪問的Window 2003服務器上進行了遠程調試。我的XP開發箱上安裝了VS 2008 SP1。當Internet上的ASP.NET進行遠程調試時,斷點未命中

我在遠程服務器上啓動了該站點,並連接到遠程服務器上的所有w3wp.exe進程。我注意到.dll沒有加載符號文件。當我嘗試從我的本地機器加載相應的.pdb文件時,它說文件不匹配。我有「要求源文件完全匹配原始版本」未選中。遠程服務器上的程序集與我的開發盒上的程序集相同。該站點和.dll從dev boc複製到遠程服務器,代碼自此以後未更改。所以我知道.dll和.pdb文件應該匹配,或者至少我需要強制匹配。

問題:

  1. 如何獲得的.pdb文件加載?我知道斷點不會觸發,除非符號文件被加載。我注意到.pdb文件不存在於遠程服務器上的「Temporary ASP.NET Files」文件夾中。 .dll的確如此。

  2. 什麼是適當的序列開始在VS內遠程調試? (遠程設置完成,我可以看到遠程進程)。 在VS中,我有起始頁作爲遠程站點的URL。我開始時不進行調試,然後連接到遠程的w3wp.exe(s)。這是全部嗎?

回答

4

您是否正在運行Web站點或Web應用程序(是已編譯的項目,是否部署了您部署的DLL或部署的aspx和aspx.cs文件的集合)?

如果是Web應用程序,您是否部署了發佈版本或調試版本?在「調試」發佈版本時,您將無法達到斷點,因爲代碼已經進行了相當程度的優化。

你在web.config編譯部分設置了「debug = true」嗎?如果不是這樣,調試將會很困難。

最後的步驟我用時遠程調試是:文件的

  1. 部署最新的調試版本的遠程服務器上
  2. 請求頁面來啓動/重新啓動應用程序
  3. 確保VS遠程調試監視器已啓動並在遠程服務器上運行
  4. 在VS中,轉至工具(或調試)|附加到進程...,確保在限定符中選擇了遠程服務器,併爲正確的應用程序池選擇w3wp.exe等。
  5. 請求會觸發斷點的頁面。
  6. 調試!

如果斷點是空心的(薄的紅色圓圈而不是填滿的磁盤),我會經常檢查VS中的堆棧窗口,看看有沒有加載。

+0

這是一個Web應用程序,而不是網站應用程序。你提到的一切都已完成。 但是我的第一個問題依然存在。你如何獲得.pdb文件加載和VS期望它是什麼?查看網站的日誌,我沒有看到DEBUG命令被記錄。 – Abdu 2008-12-22 16:54:34