2

我在Google和StackOverflow上多次發現此問題,但沒有回答我的情況。遠程調試Web服務時的問題

我想遠程調試一個Web服務,遠程調試設置正確,我部署了最新版本(以及pdb文件)並將調試器附加到遠程機器上的w3wp進程。但是,一旦連接,我的所有斷點都會自動禁用(斷點當前不會被觸發,本文檔中沒有加載符號)。有誰知道我做錯了什麼?

我已經試過到目前爲止以下內容:在高級編譯選項

  • 集「生成調試信息」到「滿」。
  • 在高級編譯選項中將'Enable Optimisations'設置爲'False'。
  • 在模塊窗口中的符號狀態是「跳過加載符號
    • 試圖加載符號手動
    • 試圖改變在符號設置符號文件位置到遠程PDB文件
  • 清洗和重建部署前的解決方案
  • 我嘗試在調試選項中取消選中「Just My Code」,這似乎解決了問題,但是當我調用Web服務時,沒有發現中斷點。
  • This site看起來前途無量,但最終
  • the pdb is on the remote machinË

回答

3

多亂搞後,我似乎已經achived我想要的東西:

  • 先進的編譯選項
    • 集「生成調試信息」到「滿」。
    • 將'啓用優化'設置爲'錯誤'。
  • 確保符號文件的位置 - 在符號設置(調試模塊窗口)指向正確的位置
    • 我增加了遠程位置和本地位置到.PDB位置
  • 清洗重建部署
+0

禁用優化真的解決了我的問題! (VS2013) – Edi 2015-01-01 10:12:55

0

我從來沒有發現一個確保消防方式來得到這個工作沒有幫助。嘗試調試託管在IIS中的WCF服務時,反覆執行相同的過程(重新構建,部署,重新啓動站點,附加)我有時會加載符號,有時候不會。

在我而言,它來到了我是否連接到進程之前有人提出對站點的請求我已經部署後(反過來導致IIS來編譯和做它的時髦的東西)。

我發現,如果我按照這些步驟,它爲我工作:

  1. 重建解決方案
  2. 部署到遠程服務器
  3. 重新啓動IIS - 我懷疑這是必要的,重新啓動應用程序池就足夠了我相信
  4. 找到工作進程並附加到它 - 斷點將被禁用在這一點上,那很好
  5. 請求網站上的東西 - 我這樣做只是使用瀏覽器。這導致IIS編譯我的應用程序。通過在編譯之前附加VS,我發現我正在加載符號(至少比以前更頻繁)

也許同樣的過程對你有用嗎?

+0

w3wp進程不存在以附加調試器,直到我從站點請求或在瀏覽器中加載它(這不是WCF,因此它在這方面的工作原理可能不同)。 – 2011-05-25 10:39:39

+0

也許,或許我已經忘記了我已經遵循的步驟...... ^^另外一件顯而易見的事情是,您是否使用調試配置來編譯Web項目?它經常被錯過,但是如果部署的項目是使用發佈配置進行編譯的,那麼在附加 – Smudge202 2011-05-25 12:03:19

+0

後我將無法捕捉到中斷點。我現在已經解決了這個問題。 – 2011-05-25 16:05:01

0

前溶液對我來說,我不得不部署到IIS工作進程路徑PDB的,所以一切都應該是很好的,我真的不明白爲什麼「Skipp編輯加載符號「出現。 我真的覺得它沒有心情(沒有理性的原因)。

所以我右鍵點擊該dll我很感興趣,調試(可以選擇多個文件也), 和選擇加載符號從>符號路徑

,並導致它們被加載。

然後我可以調試它。謝謝!