Visual Studio连接Oracle 11G数据库报错TNS_ADMIN(ODP.NET托管驱动)
解决ODP.NET托管驱动连接Oracle 11G时的TNS_ADMIN错误
检查TNS_ADMIN环境变量配置
托管驱动优先读取系统/用户环境变量里的TNS_ADMIN路径:- 确认环境变量指向的路径下存在
tnsnames.ora和sqlnet.ora文件 - 设置环境变量后必须重启Visual Studio 2019,否则变更不会生效
- 打开命令提示符执行
echo %TNS_ADMIN%,验证输出路径是否正确
- 确认环境变量指向的路径下存在
在项目配置文件中显式指定TNS_ADMIN
应用配置的优先级高于环境变量,可在app.config或web.config中添加如下配置:<configuration> <oracle.manageddataaccess.client> <version number="*"> <settings> <setting name="TNS_ADMIN" value="你的tnsnames.ora所在完整绝对路径" /> </settings> </version> </oracle.manageddataaccess.client> </configuration>路径示例:
C:\OracleClient\network\admin验证tnsnames.ora文件的正确性
- 检查数据库连接条目格式,正确示例:
ORCL11G = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP地址)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) - 排查文件语法错误,比如括号不匹配、标点遗漏
- 用
tnsping ORCL11G命令测试连接(需安装Oracle客户端工具)
- 检查数据库连接条目格式,正确示例:
检查文件访问权限
确保Visual Studio进程能读取tnsnames.ora所在路径的文件,若路径在系统目录(如C:\Program Files),建议以管理员身份启动VS确认驱动版本兼容性
确保使用的ODP.NET托管驱动版本支持Oracle 11G,官方推荐使用12c R2及以上版本的托管驱动

内容的提问来源于stack exchange,提问作者Burak OÇAK
相关产品推荐
相关产品推荐

