Tôi có một ứng dụng (viết bằng C#), chạy trên Windows Server 2008 (64bit). Trong ứng dụng này tôi phải kiểm tra một số khóa registry liên quan đến IIS. Trong số những người khác tôi muốn truy cập phím HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ Components \ WMICompatibility" để kiểm tra xem chế độ tương thích IIS 6 được kích hoạt hay không. Đối với điều này tôi sử dụng Registry.GetValue của Microsoft.Win32.Truy cập đăng ký bằng C# và "BUILD x86" trên máy 64bit
Đối với một số lý do giải pháp phải được biên soạn với x86. Hậu quả là, nó không còn có thể truy cập HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ Components nhưng nó vẫn còn có thể đọc chính từ HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp. Khi biên dịch nó bằng "AnyCPU" -flag truy cập đăng ký hoạt động tốt.
Vậy lý do của hành vi này là gì? Có giải pháp hay giải pháp nào cho vấn đề này không?
Tôi không nhớ tên khóa cụ thể, nhưng phần mềm x86 trên Win64 nằm trong HKEY_LOCAL_MACHINE \ Software \ Wow64 hoặc tương tự tên khóa phụ – sehe