2010-04-26 44 views
10

因此,這個有趣的問題一直困擾着我過去的幾個小時。 Visual Studio 2010 Ultimate不再附加調試器並讓我調試我的代碼。Visual Studio 2010不允許我調試我的代碼

如果我使用內置的開發服務器,然後一切工作正常。如果我切換到使用本地IIS Web服務器(http://localhost/),那麼它將附加到w3wp.exe,但沒有任何DLL或PDB被加載。我可以去調試> Windows>模塊,並且從字面上什麼也沒有加載在這個窗口。相反,使用內置開發服務器時,「模塊」窗口顯示所有DLL,並顯示我的DLL的符號已加載。有些東西顯然是不對的。 VS安裝完全是骨骼庫存。

在IIS中,我的網站配置了ASP.NET 2.0(因爲沒有3.5的存在是爲了從下拉菜單中選擇),與陪讀/日誌訪問/索引「主目錄」選項卡中選中此資源選項。

我的一些失敗想法:
1)如果我附加在顯示網站的iexplore.exe實例上的進程,它會加載Internet Explorer的DLL,但不是我的。我已經調用了devenv.exe/resetuserdata一次
4)我已經確認每個項目的確設置爲調試而不是釋放。
5)刪除所有\ bin內容並重建解決方案。
6)刪除整個解決方案並從源代碼管理中刪除。

誰能告訴我什麼是錯的這個東西?我會因爲這引起我的頭痛而產生動脈瘤。

回答

3

你需要將它連接到IIS工作進程,OS您使用哪一個?確保在附加到進程中附加了Managed + Native標誌。如果您只是在Visual Studio中運行(F5)Web應用程序(會自動附加調試程序),會發生什麼情況?你有任何錯誤?

+0

它看起來像你在做什麼。我做了一些小改動,但沒有反映出來。調試器正試圖連接到w3wp.exe,如下所示:http://img710.imageshack.us/img710/4606/outputwindow.png – Tejs 2010-04-26 21:53:03

+0

您是否設置了任何斷點?如果是的話,當Visual Studio被連接時,如果你去了一個斷點,它說什麼?如果斷點不能被擊中,通常會有一條消息 – 2010-04-26 22:27:52

+0

您知道,爲了確保一切正常,我建議您從全新/全新(以及Visual Studio創建它)Web應用程序開始。一旦你確定使用IIS工作(調試),我們可以繼續排除其他可能性。如果代碼是由CLR 4.0加載的,但是您附帶了CLR 2.0標誌,並且調試器的期望不同,則可能沒有正確地附加到進程。 – 2010-04-27 05:05:19

0

您是否嘗試刪除瀏覽器緩存?有時瀏覽器會掛起與當前版本不兼容的舊代碼,從而阻止調試。

+0

我已經清除IE的緩存,以及Chromes。當我使用本地IIS Web服務器時,兩個瀏覽器都不起作用。當我將它設置爲內置服務器時,兩者都可以工作。 – Tejs 2010-04-26 21:15:06

0

我已經在構建配置屏幕下的一些項目取消選中特定的解決方案配置,使他們無法建立,因此無法調試的前一個問題。您能確認您所做的代碼更改是否實際正在構建和執行?

而且,你運行的是什麼版本的Windows和IIS的?您的流程是否可能在AppPool下運行,賬戶與您登錄的賬戶不同,也許是權限問題?如果是Vista/Win7,UAC是否打開並且以管理員身份運行VS?我也會第二個建議嘗試一個新項目,看看有什麼功能。你是否在機器上的調試器用戶本地組?

+0

所有項目目前都設置爲在Configuration Manager中構建。 7)另外,我沒有引用,然後重新添加對依賴項目的引用。 – Tejs 2010-04-26 21:12:53

0

它運行的應用程序 - 沒有調試器附着?它聞起來像你的調試器附加到一個錯誤的過程

+0

它完全運行應用程序。但是,如果它附加到某個其他進程上,那麼爲什麼沒有這個進程的DLL會顯示在Module窗口中? – Tejs 2010-04-26 21:34:24

1

那麼這裏還有不少很好的答案,但我發現我的問題的根本原因是應用程序池身份驗證配置。讓我說出我經歷的情景和解決方案,也許它會幫助別人節省時間....和頭髮。

場景:
我想調試在Visual Studio 2010中的ASP.NET Web應用程序,但無法使用內置Visual Studio的Web服務器。我無法使用內置Web服務器的原因是我的應用程序引用了專門爲64位體系結構構建的程序集,而VS Web服務器不支持這些。所以,我必須使用網站屬性中的「使用自定義Web服務器」選項,將調試器指向我的站點的已發佈實例,並將其放在遠程IIS Web服務器上。

問題:
即使正確地設置在裝配輸出發佈調試符號的Web.config調試選項(即編譯調試=「真」),調試器不會連接到遠程IIS進程和我沒有擊中任何斷點

環境:
的Visual Studio 2010中的調試器已經安裝在遠程IIS Web服務器上,並運行作爲本地系統帳戶下一個Windows服務。

解決方案
除了上託管的IIS Web服務器上的網站啓用「匿名身份驗證」改爲「Windows身份驗證」。

只要我啓用匿名身份驗證,正確的符號由VS遠程調試器加載,我能夠擊中斷點。

希望這可以幫助你們。

相關問題