Ora 12454 tns无法解析指定的连接标识符

时间:2014-09-18 04:52:19

标签: c# .net oracle wcf

我有在Windows 2008 R2(oracle Client 32/64)上运行的wcf,当我尝试更新表时,我收到此错误ora 12454 tns could not resolve the connect identifier specified,如果我在本地电脑上运行所有工作&#39 ; s罚款更新功能很好,但是当我在服务器上运行时,我收到错误。

在寻找答案后,我认为我的连接字符串中可能出错,但所有sems都可以。“

  <connectionStrings>
    <add name="SnOracle" connectionString="Data Source=ORCL;User Id=Vn;Password=Vn;"/>
  </connectionStrings>

这里是错误的图像

enter image description here

这里是更新代码的一部分

             using (OracleConnection con = new OracleConnection(connStr))
                            {
                                try
                                {
                                    con.Open();
                                    OracleCommand cmd = new OracleCommand();
                                    cmd.Connection = con;
                                for (int i = 0; i < Rows.Count; i++)
                                    {
        cmd.CommandText = "INSERT INTO SNXRATES" +  "(KOD_BANK, 

    TAARICH_ERECH,KODCURRBANK,RATE_TYPE,RATE_VALUE,FACTOR_1,SERIAL_IN,SERIAL_OUT1,
    SERIAL_OUT2,CURRBASE,SERIAL_OUT3 )" +

        "VALUES" +  "('" + Rows[i].KOD_BANK + 
    "','" + Rows[i].TAARICH_ERECH + "','" + 
    Rows[i].KODCURRBANK + "',"  + Rows[i].RATE_TYPE + 
    "," + Rows[i].RATE_VALUE + "," + Rows[i].FACTOR_1 + "," + Rows[i].SERIAL_IN + "," +

 Rows[i].SERIAL_OUT1 + "," + Rows[i].SERIAL_OUT2 + ",'" + Rows[i].CURRBASE + "'," + Rows[i].SERIAL_OUT3 + ")";

                                        cmd.ExecuteNonQuery();
                                    }

                                }
                                catch (Exception ex)
                                {
                                    //here i use  MessageBox to see error
                                    MessageBox.Show(ex.Message+"  || "+ex.Source);
                                    succeeded = false;
                                }

                            }

                        }
                        return succeeded;

                    }

2 个答案:

答案 0 :(得分:0)

此特定错误背后的主要原因是您的服务器上不存在此特定TNS条目。所以你可以做的是在服务器上配置你的oracle客户端以使用tnsnames.ora文件。

1)找到tnsnames.ora(Oracle客户端)并添加相应的条目(您已配置为在wcf服务的配置文件中使用的连接)。 (http://kb.tableausoftware.com/articles/knowledgebase/oracle-connection

2)重置(或重启)您的IIS(如果使用任何或在服务器上重新启动您的wcf服务)。

3)再次尝试执行您的代码。

答案 1 :(得分:0)

找到tnsnames.ora文件。它可能在C:或D:驱动器上。可能的路径如下:.. \ app \ Administrator \ product \ 11.2.0 \ client_1 \ network \ admin。 在此处为您在应用程序中使用的数据库添加tns设置,然后运行该应用程序。它可能有用。