从服务调用时,Registry.CurrentUser.OpenSubKey返回Nothing

时间:2010-10-25 15:51:17

标签: vb.net registry

在作为服务运行的VB.NET应用程序中,当我使用Registry.CurrentUser.OpenSubKey()时,我得到的值为“Nothing”。当应用程序在桌面模式下运行时,相同的代码会正确执行。我对VB.NET并不多,不幸的是,这不是我的代码。

代码:

Dim regURL As String = "Software\MyCompany\" + _
                  System.Reflection.Assembly.GetCallingAssembly.GetName.Name + _
                  "\Settings"

regKey = My.Computer.Registry.CurrentUser.OpenSubKey(regURL, True)

服务使用时regKeyNothing。桌面返回一个有效的注册表项对象,我觉得验证URL。我正在使用CurrentUser的任何想法,因为在Windows Server 2008上运行时此代码不能与LocalMachine一起使用。

提前致谢,

克雷格

1 个答案:

答案 0 :(得分:1)

要使其成为有效测试,您必须确保在安装时配置您的服务,以便与用于桌面测试的帐户相同。它们是一样的吗?

如果没有,注册表值会有所不同,因为CurrentUser是用户特定信息的别名 - 对每个用户来说都不一样。

如果它们不匹配,您应该可以通过AdminstrativeTools更改服务设置来重新测试 - >服务 - 右键单击​​您的服务并选择“属性”,然后通过“登录”选项卡更改服务帐户。