0

Windows サービスと ASP MVC3 Web サイトで使用される次のレジストリ キーを呼び出す共有クラスがあります。

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

私のローカル (Win7 32 ビット) PC では、これは期待どおりに動作します。

私のテスト 2008 サーバーでは、サービスは「Wow6432」ノードの読み取り/書き込みを行いますが、Web サイトはそうではありませんか? 私の推測では、サービスは 32 ビット (32 ビット バイナリを使用) ですが、Web サイトは IIS で 64 ビットですか?

両方が同じキーを読み書きできるようにするにはどうすればよいですか? これがどちらのキーであるかは問題ではありませんが、両方で同じである必要があります!

どうも

4

2 に答える 2

0

AnyCPU の代わりに x86 用に Web サイトを明示的にコンパイルしてみると、強制的に 32 ビット モードになる可能性があります。(Build/Configuration Manager メニューで新しいプラットフォームをセットアップします)

また、IIS でアプリ プール オプションをオンにして、32 ビット アプリケーションを有効にする必要があります (アプリ プールの詳細設定)。

于 2011-11-23T08:54:21.930 に答える
0

グーグルは、次のものを使用するように私に指摘しました:

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

それはMSDNにありますが、ドキュメントはあまり明確ではありませんでした(とにかく私には!)が、これにより、RegistryKeyが32ビットバージョンを使用するように強制されます。

于 2011-11-29T04:17:37.610 に答える