Получить Windows Service и веб-сайт ASP на Windows 2008, чтобы читать те же ключи реестра? - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть общий класс, который вызывает следующий раздел реестра, который используется службой Windows, а также веб-сайтом ASP MVC3:

irsalKey = Registry.LocalMachine
                    .CreateSubKey("SOFTWARE")
                    .CreateSubKey("MyApp");

На моем локальном ПК (Win7 32bit) это работает как положено.

На моем тестовом сервере 2008 Служба считывает / записывает узел "Wow6432", а веб-сайт - нет? Я предполагаю, что сервис 32-битный (использует 32-битные двоичные файлы), но веб-сайт 64-битный под IIS?

Что я могу сделать, чтобы оба читали / писали одни и те же ключи? Неважно, какой это ключ, но он должен быть одинаковым для обоих!

Thx

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Googling указал мне использовать следующее:

RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)

Это в MSDN, но документация не была слишком ясной (для меня в любом случае!), Но это заставляет любой RegistryKey использовать его 32-битную версию.

0 голосов
/ 23 ноября 2011

Вы можете попробовать явно скомпилировать веб-сайт для x86 вместо AnyCPU - это может привести к 32-битному режиму.(настроить новую платформу в меню Build / Configuration Manager)

Вам также нужно включить опцию пула приложений в IIS, чтобы включить 32-битные приложения (расширенные настройки в пуле приложений).

...