2010-12-17 98 views
7

我在使用VS 2010和IIS 5的XP(SP3)機器上開發。什麼是debugattach.aspx,爲什麼服務器找不到它?

我有兩個版本的同一個站點。我們發佈了我們的第一個生產版本,所以我將代碼分叉到一個新的目錄樹中,並在IIS中設置新的虛擬目錄以指向新的樹。這些項目設置爲在IIS中運行,而不是在VS的服務器上運行。主站點是基於MVC 2的項目。

我的問題是,當我在Visual Studio 2010中打開F5開始調試新版本時,出現「無法在Web服務器上開始調試,Web服務器找不到請求的資源。我花了昨天的大部分時間試圖找出它找不到的資源。這發生在它進入「應用程序啓動」之前。我終於想到了查看Web日誌,並發現無論何時我點擊F5鍵,Web日誌都會顯示/debugattach.aspx的DEBUG請求,返回代碼爲404(未找到)。如果我在舊版本上運行相同的序列,它將顯示相同的內容,但首先使用401代碼,然後使用200代碼重複該請求。

我的第一個想法是,VS必須寫出一個「debugattach.aspx」文件,然後調用它,也許它沒有寫目錄的權限,但據我所知,它確實。

我搜索了debugattach.aspx,並且返回的文章的前幾頁似乎都提到了鎖定和超時,主要在IIS 7和VS 2005上。沒有任何東西似乎適用於這種情況。

查看舊版本和新版本之間的不同之處,唯一的事情是虛擬目錄的IIS設置以及代碼本身的web.config。但是我已經把這兩個網站放在一起,並且找不到解釋這種行爲的任何差異。

有沒有人有線索可以與我分享?或者任何人都可以給我任何關於debugattach.aspx是什麼的文檔,以及DEBUG HTTP請求的作用和/或VS如何使用它們?

在此先感謝。

+0

請忽略。我找到了解決方案。我不明白這一點,但我得到了它的工作。我又回過頭去,並排比較了兩個站點的IIS屬性,發現了不同之處。在應用程序擴展映射中,我添加了aspnet_isapi.dll作爲通配符映射,以便通過MVC映射運行無擴展名的URL,並在不工作的站點上檢查了「腳本引擎」複選框在那個網站上。我刪除了它,然後再次嘗試,並開始調試。 – 2010-12-17 14:58:35

+0

雖然這是一箇舊的帖子,但你仍然可以獲得榮譽發佈自己的答案=) – killthrush 2016-03-22 18:10:22

回答

-1

<compilation debug="true">添加到您的Web.config中。

+0

SLaks,我很欣賞這個迴應,但是從項目的第一天開始調試已經設置爲true。 – 2010-12-17 14:58:06

0

我剛剛遇到了這個。我已關閉允許未列出的文件擴展名設置在請求在我的本地IIS服務器上過濾(爲了匹配我們在其他環境中的安全強化設置)。原來.aspx被阻止。我重新打開了設置並可以附加到調試器。所以我將它關閉,並在站點級別爲.aspx添加了一個補貼,然後我可以再次使用調試器附加。

我很好奇爲什麼調試器正在尋找debugattach.aspx,並且出現此錯誤。特別是因爲我的應用程序是MVC,我不需要服務.aspx。

0

我有一個通配符腳本映射的.NET 4版本的aspnet_isapi.dll是造成這種情況。我能夠更改腳本映射來忽略DEBUG謂詞(僅使用我需要的動詞來執行我的應用程序),並使VS自動附加。因此,我最終使用VS開發Web服務器或IIS Express來讓我的站點在XP機器上工作,因爲IIS 5.1不喜歡通配符腳本映射和ASP.NET路由的組合。

3

基於this old posting,DebugAttach.aspx由HTTP處理程序System.Web.HttpDebugHandler實現。實際上,我沒有在IIS7中的任何地方看到這個處理程序 - 這個實現可能會合併到其他一些處理程序中。絕對是某種類型的處理程序。當它工作時,您會在日誌中看到200條(成功)消息。

我有這種相同的問題2種不同的方式,其中在VS2010調試失敗,因爲到達調試處理程序的問題。使用IIS失敗的請求跟蹤日誌,我可以看到IIS模塊干擾的情況。在曾經的情況下,UrlScan.dll阻止了DEBUG謂詞。另一種情況是,從HTTP到HTTPS的重定向導致調試處理程序返回302.在這兩種情況下,VS都會使用類似的對話框進行barfed。

無論如何,這裏的技巧似乎在弄清楚如何阻止對此URL的DEBUG請求。

+2

Visual Studio將在此處記錄與DebugAttach.aspx相關的錯誤:%UserProfile%\ AppData \ Local \ Temp \ Visual Studio Web Debugger.log(如果您沒有該文件 - 或者它是舊文件),那麼您的問題可能與DebugAttach.aspx無關。) – 2016-03-22 18:48:04

0

如果您運行的是VS2010或更高版本,並且安裝了.Net 4.x或更高版本,請嘗試重命名「v3.0」子目錄(例如「重命名C:\ Windows \ Microsoft.Net \ Framework \ v3」。 0 v3.0.ORIGINAL「),重新啓動您的機器,並嘗試在Visual Studio中再次調試。

這對我來說就像一個血腥的魅力,但你的里程可能會有所不同,取決於你在做什麼樣的發展。

我一直在這樣運行Visual Studio 2012兩週,我真的無法相信事情是多快(再次!)。使用F5啓動調試器現在是即時的,停止調試會話也是即時的。各種各樣的越野車和慢跑行爲已經停止,到目前爲止我還沒有看到單一的副作用。

0

適用於我的解決方案是以管理員身份運行模式重新啓動VStudio。

相關問題