我们使用“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'内部错误消息: 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();到数据库的连接工作正常。但是,配置内部有什么问题呢?
发布于 2019-07-12 16:36:57
我发现这个链接很有用: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;发布于 2020-01-04 06:45:12
多亏了雅各布·彼得森。
但是,如果您无法在C#代码中找到上述设置,那么按照下面的方式配置您的配置。“如果块已经存在,则添加设置”
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="LoadBalancing" value="false" />
<setting name="HAEvents" value="false" />
</settings>
</version>
</oracle.manageddataaccess.client>发布于 2020-09-25 16:24:13
我们用一个连接字符串配置OracleConnection (没有任何xml)。
使用可以设置这两个参数--例如,以下名称,其他部分与此问题无关。
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mydbhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myservicename)));load balancing=false;ha events=false;Min Pool Size=1;Incr Pool Size=1;user id=mydbuser
https://stackoverflow.com/questions/48170310
复制相似问题