Vb.net 正在获取Windows服务以读取注册表HKLM

Vb.net 正在获取Windows服务以读取注册表HKLM,vb.net,service,registry,Vb.net,Service,Registry,我花了很长时间才让它工作。我在VB.NET中编写了一个服务和一个表单应用程序,这两个应用程序都需要访问注册表项才能找到一台有我的数据库的计算机。在forms应用程序中,它工作得很好,但服务却不行。我认为这是一个权限问题,所以我检查了服务器(Windows 2008)上的权限,他们都很好-我甚至以管理员的身份运行该服务,以防出现问题,但仍然没有乐趣。我的代码有问题吗 我尝试过访问注册表的方法。第一种方法只是将服务器变量设置为nothing,第二种方法“rk”变量最终为nothing(告诉我它甚至找

我花了很长时间才让它工作。我在VB.NET中编写了一个服务和一个表单应用程序,这两个应用程序都需要访问注册表项才能找到一台有我的数据库的计算机。在forms应用程序中,它工作得很好,但服务却不行。我认为这是一个权限问题,所以我检查了服务器(Windows 2008)上的权限,他们都很好-我甚至以管理员的身份运行该服务,以防出现问题,但仍然没有乐趣。我的代码有问题吗

我尝试过访问注册表的方法。第一种方法只是将服务器变量设置为nothing,第二种方法“rk”变量最终为nothing(告诉我它甚至找不到子键):

第二个是:

Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey("\SOFTWARE\EPS\XPV")

该服务本身启动得很好,因为我在这些行之后收到了日志消息,这些行告诉我该值为空,所以它只能归结为找出为什么我无法访问该服务中的注册表,即使我可以在forms app中访问注册表。

或者在HKLM\SOFTWARE\WOW6432节点下查找您的键/值,或者将应用程序编译为64位。

服务是32位的,表单应用程序是64位的吗?反之亦然?该服务是32位的,平台是64位的,但我的表单应用程序也是如此。我很惊讶一周多来这方面没有任何进展,我希望这是一个简单的解决方案,但看起来不像是。
Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey("\SOFTWARE\EPS\XPV")