Connection.Open()中的Oracle.DataAccess.Client.OracleException

时间:2014-03-12 13:18:51

标签: c# sql .net-4.0 oracle12c

这个问题看起来像是别人的克隆,但我无法找到这个问题的正确答案。 这是我的情景: 我有一个由webservices调用的C#软件,需要写入oracle数据库。 在我的测试服务器没有问题,它就像一个魅力,但在另一个相同的服务器,它给我这个错误:

  

Oracle.DataAccess.Client.OracleException at   Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32   errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx *   pOpoSqlValCtx,Object src,String procedure,Boolean bCheck,Int32   isRecoverable)at   Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,   OracleConnection conn,IntPtr opsErrCtx,Object src)at   Oracle.DataAccess.Client.OracleConnection.Open()

没有其他消息。 我认为安装oracle客户端是一个错误,但是,我为测试oracle连接而编写的另一个小应用程序有效:

var connectionString = ConfigurationManager.AppSettings["connectionString"];
using (OracleConnection nwindConn = new OracleConnection(connectionString))
{
   nwindConn.Open();
   Console.WriteLine("opened");
}

的ConnectionString:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=thisdatabase.thisinstance)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=serv)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC)(RETRIES=180)(DELAY=5))));User ID=myuser;Password=mypsw;

所以,问题,我认为是在应用程序配置中,但为什么同样适用于其他服务器? 我试图编辑项目和解决方案调试平台配置但问题仍然存在..有什么建议吗?

2 个答案:

答案 0 :(得分:1)

问题是启动了应用程序的IIS用户,“应用程序传递”。 我用我的管理员用户更改了它,它就像一个魅力。 无论如何,谢谢你。

答案 1 :(得分:0)

在使用11g的情况下,只需转到您的oracle文件夹(我的C:\ oracle)并查找文件 Oracle.dataAccess.dll ,您可能会发现4个文件将其复制到该应用程序,一切都会很好。