2014-09-03 61 views
0

我一直有一段时间试图让这个工作。我在VB.NET中编写了一个服务和一个表单应用程序,它们都需要访问一个注册表键来找到一台拥有我的数据库的计算机。在表单应用程序中,它的效果很好,但服务没有。我认为这是一个权限问题,所以我检查了服务器上的权限(Windows 2008),他们没事 - 我甚至跑到服务器作为管理员,以防万一是问题,但仍然没有喜悦。我的代码有问题吗?获取Windows服务来读取注册表HKLM

我试过访问注册表的方法。第一种方法只是设置服务器变量没有和“RK”变量最终是没有第二个方法(告诉我,它甚至不能找到子键):

Dim server As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\EPS\XPV", "Server", Nothing) 

,第二个是:

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

服务本身,因为我这几行告诉我值为空所以它只是归结为搞清楚为什么我不能访问该服务的注册表,即使之后让我的日志消息启动就好了尽管我可以在表单应用中使用。

+1

服务是32位还是窗体应用程序是64位?或相反亦然? – Blorgbeard 2014-09-03 23:52:00

+0

该服务是32位和平台是64,但我的表单应用也是如此 – C4W 2014-09-04 19:51:26

+0

我很惊讶在这一周没有运动,我希望这是一个简单的解决方案,但它看起来不是这样。 – C4W 2014-09-12 15:47:07

回答

1

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