我们有一个 C# 程序计划在 Windows Server 2003 上的任务计划程序中运行,旨在根据从多个 Oracle 数据库中提取的信息删除文件夹中的过时文件。我可以手动执行应用程序并且一切正常 - 以我自己的身份登录并具有管理权限,或者以分配的任务用户身份登录并具有用户权限。
但是,当任务用户从机器上注销时,应用程序在每个数据库上都会失败,并出现以下两个错误之一:要么
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
或
ORA-12154: TNS:could not resolve the connect identifier specified.
所有这些数据库都使用连接字符串(从另一个 SQL Server 数据库检索),正如我之前所说,手动操作时连接和运行都很好。我一直在网上寻找可能适用于这种情况的提示,但没有给出明确的答案。
是否有人阅读此消息可能知道此问题的答案?欢迎提出任何建议。
最佳答案
您的计划任务设置为以哪个用户身份执行?您测试的同一用户之一,还是另一个帐户?
无论如何,这听起来不像是权限问题,而是 ORACLE_HOME
未设置环境变量。 (看起来您的程序可能正在尝试通过找不到的 tnsnames.ora
文件进行连接。)您可能需要让计划任务首先启动一个设置环境的批处理文件,然后继续调用您的 C# 程序.
关于c# - 任务计划程序中的 Oracle 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8649167/