.net - AWS Oracle RDS:ORA-12560:TNS:协议适配器错误
问题描述
我已将使用Oracle的本地 .NET MVC 和 WebAPI应用程序移至 AWS 云。在所有条件相同的情况下,我只是将连接字符串更改为引用RDS Oracle。
我的设置文件中有以下连接字符串:
<add key="OracleDatabaseConnectionString" value='Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db-rds.uryrt6fhe.rds.amazonaws.com)(PORT=1526))(CONNECT_DATA=(SID=db-rds)));' />
但是,我得到以下信息:
ORA-12560: TNS:Protocol adapter error
使用RDS Oracle而不是本地 Oracle时如何解决这个问题?
(在Oracle SQL Developer中,我可以成功连接..那么为什么不使用上面的连接字符串呢?)
解决方案
该错误肯定与打开与 oracle rds 实例的连接有关(有一次我调查了 DNS、LDAP 等,只是为了删除所有变量)。
此连接字符串仅适用于本地 oracle。
<add key="UserLogin" value="User Id=prodabc;Password="pdw$7jhw@1;" />
<add key="OracleDatabase_onprem" value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2.2.87)(PORT=1526))(CONNECT_DATA=(SID=oradb)));" />
在我的代码中,我构造了与数据库的连接,如下所示:
var conn = Config.OracleDatabase_onprem;
var usr = Config.UserLogin;
OracleConnection oraConn = new OracleConnection(string.Format("{0}{1}",conn, usr)
以下连接字符串适用于 oracle rds并适用于本地 oracle。
<add key="UserLogin" value="User Id=prodabc;Password=pdw$7jhw@1;" />
<add key="OracleDatabase_cloud" value="Data Source=db-rds.uryrt6fhe.rds.amazonaws.com:1526/oradb" />
在我的代码中,我构造了与数据库的连接,如下所示:
var conn = Config.OracleDatabase_onprem;
var usr = Config.UserLogin;
OracleConnection oraConn = new OracleConnection(string.Format("{0}{1}",str, usr,conn)
仅在本地
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2.2.87)(PORT=1526))(CONNECT_DATA=(SID=oradb)));User Id=prodabc;Password=pdw$7jhw@1;"
ORACLE RDS 和内部部署
"User Id=prodabc;Password=pdw$7jhw@1;Data Source=db-rds.uryrt6fhe.rds.amazonaws.com:1526/oradb"
推荐阅读
- python - 如何为每个实体(多个分类字段)的每个缺失日期添加记录,并从值字段转发填充添加的条目?
- python - python字符串迭代的时间复杂度与for in
- sql - Querying an SQL table to get all new values in a column according to filter in another column
- javascript - jQuery 和 CSS3 中的文件输入自定义文本
- firefox - Mozilla Firefox 无头屏幕截图不适用于本地 HTML 文件
- google-cloud-platform - Google Cloud Spanner 插入速度很慢
- java - 调用不带参数的泛型函数
- jhipster-registry - mongodb与节点和快递的连接错误
- pdf - 使用颤振打印包,如何从 URL 打印 PDF?
- eslint - 忽略