我有在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>
这里是错误的图像
这里是更新代码的一部分
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;
}
答案 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设置,然后运行该应用程序。它可能有用。