2014-03-12 12 views
1

这个问题可以看起来像其他人的克隆,但我找不到这个问题的正确答案。 这是我的场景: 我有一个需要写入到oracle数据库的webservices调用的C#软件。 在我的测试服务器没有问题,它就像一个魅力,但对另服务器它给我这个错误:Oracle.DataAccess.Client.OracleException在Connection.Open()

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; 

所以,这个问题,我觉得是在应用程序配置中,但为什么在其他服务器上工作? 我试图编辑项目和解决方案调试平台配置,但问题仍然存在..任何建议?

+0

我建议发布connectionstring。随意删除安全数据.... – Steve

+0

打开连接和写入是不同的动物。扩展你的测试项目来插入一些数据,看看你是否得到相同的错误。 – paqogomez

+0

@paqogomez:但错误是在连接打开,所以我需要先解决这个问题。 – SamDroid

回答

1

问题是IIS应用程序启动的用户“Application pass-trough”。 我改变了我的管理员用户,它的作用就像一个魅力。 反正谢谢你。

+0

请您详细说明您的意思是“应用程序传递”?我有类似的问题,我想我没有权限访问我的oracle客户端应用程序。 – max

+0

@max嗨,转到您的应用程序在IIS中,选择设置,“连接为”,更改您的用户! – SamDroid

相关问题