任务计划程序中的Oracle错误

时间:2011-12-27 20:51:57

标签: c# oracle scheduled-tasks

我们有一个C#程序,计划在Windows Server 2003上的任务计划程序中运行,旨在根据从多个Oracle数据库中提取的信息删除文件夹中的过期文件。我可以手动执行应用程序,一切正常 - 以我自己的管理权限登录,或者以具有用户权限的已分配任务用户身份登录。

当任务用户从机器注销时,应用程序在每个数据库上失败并出现以下两个错误之一:

  

ORA-12504:TNS:听众没有获得CONNECT_DATA中的SERVICE_NAME

  

ORA-12154:TNS:无法解析指定的连接标识符。

所有这些数据库都使用连接字符串(从另一个SQL Server,数据库中检索),正如我之前所说的那样,在手动操作时连接并运行正常。我一直在网上寻找可能适用于这种情况的提示,并没有提出明确的答案。

是否有人阅读此邮件可能知道此问题的答案?任何建议都是最受欢迎的。

2 个答案:

答案 0 :(得分:3)

您的计划任务集要执行哪些用户?您测试过的其中一个用户或其他帐户?

无论如何,它听起来不像权限问题,就像没有设置ORACLE_HOME环境变量一样。 (看起来您的程序可能正在尝试通过无法找到的tnsnames.ora文件进行连接。)您可能需要让计划任务首先启动一个设置环境的批处理文件,然后继续调用您的C#程序。

答案 1 :(得分:2)

我有类似的问题,但有一些Java应用程序。同样的事情 - 手动任务执行很好,但自动执行总是失败(同一个帐户!)。

与您的管理员核实(或者您可以自己完成)并将您的C#应用​​程序设置为由管理员帐户执行(仅测试!)或查看是否有任何其他计划任务并询问他们以查看哪个Windows帐户他们使用和如何设置。我记得我们(我+管理员)不得不进行一些实验,但最后他创建了一个新的特权帐户(一些其他现有帐户的副本)来执行计划任务。

相关问题