【发布时间】:2019-05-29 02:48:47
【问题描述】:
我正在尝试使用我的 c# 应用程序连接到远程 oracle 数据库,但是当涉及到 oracleconnection.open() 时,它会以
退出AccessViolationException 未处理 - 试图读取或写入受保护的内存。这通常表明其他内存已损坏
我的连接字符串是 app.config 文件中的key="oracleconnectionstring" value="Data Source=XYZ; password=mypassword; User ID=myuserid"。
tnsnames.ora 是
XYZ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HostName)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XYZ)
)
)
如果我尝试通过 Sql Developer 连接,它会毫无问题地连接;如果我尝试 SqlPlus,它只会崩溃(Sql*Plus 已停止工作),如果我尝试使用 VS,它会给我一个奇怪的错误。
会是什么?
编辑:如果我尝试 tnsping xyz 它返回 OK (100ms);
【问题讨论】:
-
请贴出你用来连接的代码——你用的是什么oracle连接库——你试过什么?
-
我正在使用 Oracle.DataAccess 版本 4.112.2.0 运行时 v4.0.30319;代码从配置文件中获取连接字符串,然后执行:
oracleconnection = new OracleConnection(oracleconnectionstring); oracleconncetion.Open(); -
当我在调试中分析连接字符串时,似乎从配置中获取了正确的元素;
标签: c# .net database oracle exception