我試圖調試一個Web服務時遇到問題。 Web服務存在問題,但似乎無法處理它,因爲當我在Visual Studio Debugger中運行同一個項目時,它找不到任何相關的註冊表項。他們只是空了。當我嘗試列出HKLM \ Software中的所有可用密鑰時,該列表與我在RegEdit中可以看到的完全不同。似乎Visual Studio正在遭受某種註冊表虛擬化,即從IIS運行的相同代碼不受此限制。在Server 2008上禁用Visual Studio 2008的註冊表虛擬化
我以管理員身份運行Visual Studio(並在管理角色中運行它),而且這個問題似乎只出現了 - 昨天相同的代碼工作正常,這使得它更容易混淆。
有沒有一種方法可以使Visual Studio的調試器/ ASP.Net開發服務器以與進程正在運行的相同方式運行?如果沒有,是否有一種簡單的方法來識別我的Web服務將運行的進程,以便我可以附加到該方法並從中進行調試?
編輯:由於所涉及的註冊表項與64位應用程序有關,因此該問題似乎與Wow6432Node子項無關。但是,如果它在Visual Studio調試器中運行,我甚至無法從代碼中看到Wow6432Node鍵的存在。
評論這個線程:http://stackoverflow.com/questions/1889941/64-bits-stuff-for-c-development – 2010-08-24 15:48:50
感謝漢斯,我已覆蓋相關這是討論的一部分基礎,但需要提及我爲了澄清問題。 – glenatron 2010-08-24 16:00:32
您是否像我在我的回答中描述的那樣嘗試使用64位遠程調試器?總的來說,你在Visual Studio中看到的所有東西都來自遠程調試器。所以你應該看到完整的註冊表鍵值。請確保您編譯的ASP.NET代碼不是用於「所有CPU」,而是用於「X64」。 – Oleg 2010-08-27 23:38:52