簡體   English   中英

嘗試使用 Visual Studio 2008 附加到 ASP.NET 進程時,“Windows 64 位平台不支持混合模式調試”

[英]“Mixed mode debugging is not supported on Windows 64-bit platforms” when trying to attach to an ASP.NET process using Visual Studio 2008

在 .NET 2.0 和 VS.NET 2005 中調試 ASP.NET 應用程序時,我習慣於附加一個進程。我不知道在 VS.NET 2008 中這個功能發生了什么。

我也不想從起始頁開始進行調試,因為當應用程序足夠大時,您不希望它被編譯,並且有時您無法從一開始就捕獲一個案例,而您想在那段時間捕獲該案例.

我想不通這個。

我正在使用 VS.NET 2008 Team Suite 運行 Vista Ultimate x64。

同樣在網站屬性頁面的啟動選項中,服務器被選為“使用默認 Web 服務器”,自定義服務器顯示為灰色,我無法檢查。 (我不知道我是否需要在這里進行一些更改,但我什至無法嘗試)

最重要的是,我嘗試從默認頁面進行調試,但在這種情況下,我得到的是“無法在 web 服務器上開始調試。Windows 64 位平台不支持混合模式調試”。 什么? 無論如何,我進入解決方案的配置管理器並將混合模式更改為任何 CPU,但沒有運氣。

沒有調試的幫助將 ASP.NET 降低到 PHP 或其他類型的級別。

補充說明:

  1. 我正在使用 DotNetNuke 5.0.1 並在其下構建模塊。
  2. IIS 7 用於集成模式。

我在 64 位 Vista 上找到的用於調試的密鑰如下。

1.) Ensure that the web application is FULLY running in IIS and not Cassini ( http://localhost addresses) 2.) When attaching to the w3wp.exe process, be sure to select the one with a type of T-SQL,托管,x64,而不是僅顯示 x64 類型的

按照這兩個步驟,我已經解決了我遇到的所有問題。 類似於你上面列出的那些。

順便說一句,對於基於相同錯誤消息(至少在我的情況下)找到這篇文章的其他人來說,是修改 IIS 中的應用程序池。 Go 為高級設置,將“啟用 32 位應用程序”更改為 True。 VS2010,Win 7 64位。

好的,聽起來您遇到了幾個問題。

1) webdev 服務器的自動啟動:這通常是由於您的解決方案中的一個項目設置為“調試時始終啟動”引起的。 只需在解決方案資源管理器中單擊項目並按 F4 以顯示屬性 window,並將其從“True”更改為“False”。 您可能需要檢查解決方案中的所有項目。

2) 當網站發布到真正的 IIS 時,應該附加到進程,我假設你正在這樣做。 我對 Vista 下的 IIS 並不完全熟悉,但您需要將 go 放入其中,並確保為您的 web 應用程序啟用調試。 如果您正在這樣做,則無需費心使用起始頁或使用自定義服務器。

希望對一些人有所幫助。

米切爾·塞勒斯提供了幫助。 他指出調試模式沒問題,但是在附加到進程時,“附加到”是“自動:本機代碼”。

更改為僅“托管代碼”或僅選擇“托管代碼”后,它開始工作。

謝謝米切爾。

這是米切爾的最后一句話:

“腳本”選項用於經典的 ASP 腳本,它總是在 32 位模式下運行,因此同時調試 T-SQL 和腳本會導致“混合模式”,因為 T-SQL 默認為 64 位。 此外,如果沒有選擇“托管”選項,您將永遠無法調試。

現在,至於為什么不同? 我不確定,但是一旦你改變它,你應該設置為 go 以備將來使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM