我在使用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如何使用它們?
在此先感謝。
請忽略。我找到了解決方案。我不明白這一點,但我得到了它的工作。我又回過頭去,並排比較了兩個站點的IIS屬性,發現了不同之處。在應用程序擴展映射中,我添加了aspnet_isapi.dll作爲通配符映射,以便通過MVC映射運行無擴展名的URL,並在不工作的站點上檢查了「腳本引擎」複選框在那個網站上。我刪除了它,然後再次嘗試,並開始調試。 – 2010-12-17 14:58:35
雖然這是一箇舊的帖子,但你仍然可以獲得榮譽發佈自己的答案=) – killthrush 2016-03-22 18:10:22