Отключить виртуализацию реестра для Visual Studio 2008 на сервере 2008

У меня проблема с веб-сервисом, который я пытаюсь отладить. Существует проблема с веб-службой, но я, похоже, не могу справиться с этим, потому что когда я запускаю тот же проект в отладчике Visual Studio, он не может найти какие-либо соответствующие ключи реестра. Они просто обнуляются. Когда я попытался перечислить все доступные ключи в HKLM\Software, список полностью отличался от того, что я вижу в RegEdit. Кажется, что Visual Studio подвергается некоторой виртуализации реестра, которой не подчиняется тот же код, который запускается из IIS.

Я использую Visual Studio в качестве администратора (и выполняю его в роли администратора), и эта проблема только кажется, что она появилась - вчера тот же код работал нормально, что делает его еще более запутанным.

Есть ли способ заставить сервер разработки Visual Studio отладчик /ASP.Net работать так же, как процесс запущен? Если нет, то есть ли простой способ определить процесс, в котором будет работать мой веб-сервис, чтобы я мог просто подключиться к нему и отладить таким образом?

Изменить: Кажется, проблема не связана с подразделом Wow6432Node, так как рассматриваемые разделы реестра относятся к 64-разрядному приложению. Однако я даже не вижу существования ключа Wow6432Node из моего кода, если он работает в отладчике Visual Studio.

2 ответа

Это связано с виртуализацией реестра, смотрите здесь: http://msdn.microsoft.com/en-us/library/aa965884.aspx

Это означает, что для каждого пользователя вы можете иметь разные реестры. Это особенно раздражает, если вы работаете как пользователь службы (asp.net), потому что вы получите "пустые" ключи реестра - потому что окна будут искать виртуальную копию HKML для этого пользователя вместо "глобального" реестра HKLM ключ (который вы видите при запуске regedit)

Только одна непроверенная идея. Существует удаленный отладчик Visual Studio 2008 с пакетом обновления 1 (SP1), который можно загрузить в трех версиях: x86, x64 и IA64. (Те же файлы, вероятно, в %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger на твоем компьютере). Возможно, если вы будете использовать 64-битную версию удаленного отладчика, тогда ваша проблема будет решена?

Эта ссылка "Как: настроить удаленную отладку" также может быть интересной.

Другие вопросы по тегам