【发布时间】:2018-06-24 08:24:07
【问题描述】:
这个问题看起来像是别人的克隆,但我找不到这个问题的正确答案。 这是我的场景: 我有一个由 web 服务调用的 C# 软件,需要写入 oracle 数据库。 在我的测试服务器上没有问题,它就像一个魅力,但是,在另一个同等的服务器上它给了我这个错误:
Oracle.DataAccess.Client.OracleException 在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode、OracleConnection conn、IntPtr opsErrCtx、OpoSqlValCtx* pOpoSqlValCtx,对象 src,字符串过程,布尔 bCheck,Int32 是可恢复的)在 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");
}
连接字符串:
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;
所以,我认为问题出在应用程序配置中,但为什么在其他服务器上也一样? 我尝试编辑项目和解决方案调试平台配置,但问题仍然存在。有什么建议吗?
【问题讨论】:
-
我建议发布连接字符串。随意删除安全数据....
-
打开连接和写入是不同的动物。展开你的测试项目,插入一些数据,看看你是否得到同样的错误。
-
@paqogomez:但错误是在连接打开时,所以我需要先解决这个问题..
-
你是从不同的机器连接到同一个oracle数据库实例还是两个不同的oracle服务器。使用您的连接字符串,您可以使用 Oracles SQL Plus 之类的东西进行连接吗?
-
@Steve:我添加了连接字符串。