J. *_*ing 11 .net c# oracle odp.net
我们使用'Oracle.ManagedDataAccess'ODP.NET驱动程序对Oracle进行数据库访问.
使用连接字符串连接到数据库时:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=10.40.40.38)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=D3T))); User Id=test; Password=test'
Run Code Online (Sandbox Code Playgroud)
内部错误消息:
OracleInternal.NotificationServices.ONSException**:ONS:打开连接后没有配置节点列表.
码:
string connect = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=10.40.40.38)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=D3T))); User Id=test; Password=test";
OracleConnection connection = new OracleConnection(connect);
connection.Open();
Run Code Online (Sandbox Code Playgroud)
与数据库的连接工作正常.但是配置的内部错误是什么?
约亨
小智 7
我发现这个链接很有帮助:https : //www.databaseusers.com/article/6046913/ONS%3A+No+node+lists+were+configured
基本上,您需要像这样配置 ONS,或禁用 LoadBalancing 和 HAEvents:
Oracle.ManagedDataAccess.Client.OracleConfiguration.LoadBalancing = false;
Oracle.ManagedDataAccess.Client.OracleConfiguration.HAEvents = false;
Run Code Online (Sandbox Code Playgroud)
小智 5
感谢雅各布·彼得森。
但如果您无法在 C# 代码中找到上述设置,请按如下方式配置您的配置。“如果该块已存在,则添加设置”
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="LoadBalancing" value="false" />
<setting name="HAEvents" value="false" />
</settings>
</version>
</oracle.manageddataaccess.client>
Run Code Online (Sandbox Code Playgroud)