2

我尝试调试的 Web 服务有问题。Web 服务有问题,但我似乎无法处理它,因为当我在 Visual Studio 调试器中运行相同的项目时,它找不到任何相关的注册表项。他们只是来空。当我尝试在 HKLM\Software 中列出所有可用键时,该列表与我在 RegEdit 中看到的完全不同。似乎 Visual Studio 受到某种注册表虚拟化的影响,而从 IIS 运行的相同代码则不受其影响。

我正在以管理员身份运行 Visual Studio(并以管理角色运行它),而这个问题似乎只是出现了 - 昨天相同的代码运行良好,这使得它更加混乱。

有没有办法让 Visual Studio 的调试器/ASP.Net 开发服务器以与进程实时运行相同的方式运行?如果没有,是否有一种简单的方法来识别我的 Web 服务将在其中运行的进程,以便我可以附加到该进程并从中进行调试?

编辑:问题似乎与 Wow6432Node 子项无关,因为相关注册表项与 64 位应用程序有关。但是,如果它在 Visual Studio 调试器中运行,我什至无法从我的代码中看到 Wow6432Node 键的存在。

4

2 回答 2

1

它与注册表虚拟化有关,请看这里:http: //msdn.microsoft.com/en-us/library/aa965884.aspx

这意味着每个用户可以拥有不同的注册表。如果您以服务用户(asp.net)的身份运行,这尤其令人讨厌,因为您将获得“空”注册表项 - 因为 Windows 将为该用户查找 HKML 的虚拟副本,而不是“全局”HKLM 注册表键(您在运行 regedit 时看到)

于 2011-09-29T08:54:38.443 回答
0

只有一个未经检验的想法。有 Visual Studio 2008 Service Pack 1 Remote Debugger,可以下载三个版本:x86、x64 和 IA64。(相同的文件可能在%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger您的计算机上)。大概如果您将使用 64 位版本的远程调试器,那么您的问题会得到解决吗?

此链接“如何:设置远程调试” 也可能很有趣。

于 2010-08-24T22:43:32.933 回答