C#“ ORA-12154:TNS:无法解析指定的连接标识符”}

时间:2018-07-18 18:42:15

标签: c# oracle

首先,我搜索了其他帖子,但找不到与我的问题匹配的帖子。

我正在使用Oracle.ManagedDataAccess版本4.122.1.0

我的app.config文件连接字符串为

<add name="connstring1" connectionString="Data Source=NAMEOFTNS;User ID=**UserNAME**;Password=***pass***;" providerName="Oracle.ManagedDataAccess.Client"/>


OracleConn = OracleProviderFactory.CreateConnection();
            OracleConn.ConnectionString = ConfigurationManager.ConnectionStrings["connstring1"].ConnectionString;
 OracleConn.Open();

它位于OracleConn.Open();我收到错误

ORA-12154: TNS:could not resolve the connect identifier specified

我已经用TNSPING测试了TNSNAME,并且恢复正常。

我可以放入TNS文件中的连接信息,并用连接信息替换连接字符串中的TNSNAME,它可以正常工作。但是问题是,我们需要使用TNS文件来处理此问题,以便我们仅在每次使用不同服务器执行更新而不是为每个应用程序更改所有应用程序配置文件时才更新单个文件。

大多数建议是完全绕开TNS文件,并将连接信息直接放入app.config文件中,但是如上所述,这不是我想要的。

1 个答案:

答案 0 :(得分:-1)

找到了我的答案,尽管没有专门使用Oracle.ManagedDataAccess

代替使用Oracle.DataAccess 在下面的链接中找到了答案 在OracleCommand实例化之后,您必须OracleCommand.BindByName = true;

我的特定代码是

OracleCommand oracleCommand = new OracleCommand
        {
            BindByName = true
        };

不得不说,我很惊讶Oracle要求您指定使用TNS文件而不是将其作为默认文件

http://www.oracle.com/technetwork/topics/dotnet/code-154692.html