我的一个系统遇到了问题,其中安装了多个 Oracle 版本以支持各种应用程序,但我需要使用本地系统帐户将程序作为 Windows 服务运行。目前,我收到以下错误:
System.Exception:OCIEnvNlsCreate 失败,返回代码 -1,但错误消息文本不可用。
但我被告知这可能是由于本地系统帐户的环境变量设置不正确。因此,我该如何实际更改本地系统帐户的值?
我的一个系统遇到了问题,其中安装了多个 Oracle 版本以支持各种应用程序,但我需要使用本地系统帐户将程序作为 Windows 服务运行。目前,我收到以下错误:
System.Exception:OCIEnvNlsCreate 失败,返回代码 -1,但错误消息文本不可用。
但我被告知这可能是由于本地系统帐户的环境变量设置不正确。因此,我该如何实际更改本地系统帐户的值?
如果您不介意在系统范围内设置它,只需在“我的电脑”属性的“高级”页面中的“环境变量”对话框的“系统”部分进行设置。这肯定会为 SYSTEM 上下文设置它。您也可以始终在每个用户的基础上覆盖它。
如果您真的只想在 SYSTEM 上下文中设置它,请将其添加到:
HKEY_USERS\.Default\Environment
如果您想使用 Explorer UI 来执行此操作,请使用控制台会话中的“at(现在 + 1 分钟)/INTERACTIVE CMD”技巧以 SYSTEM 身份启动命令提示符,终止以您的用户帐户身份运行的 Explorer 进程,并从 SYSTEM 命令提示符启动 Explorer。(这进入了真正“不受支持”的领域,我不一定鼓励你这样做......)
我只是设置系统范围的环境变量。
我也可以考虑创建一个专用服务帐户,授予它所需的权限,将服务配置为在这些凭据下运行,并为该帐户的配置文件设置 ORACLE_HOME 变量。你会发现这样更容易审计你的程序正在做什么。