使用Oracle.ManagedDataAccess(ODP.Net)时,我发现TNS_NAMES.ora文件已缓存,因此对条目或文件本身的任何更改在重新启动应用程序之前不会生效。我在Oracle Community网站上发现一则帖子,指出是这种情况,应该有一个删除缓存的设置,但没有说明设置的名称是(https://community.oracle.com/thread/3961566)。任何帮助表示赞赏。
复制步骤:
查询数据库
using (var con = new OracleConnection({connection string here}))
using (var oracleCmd = new OracleCommand())
{
try
{
con.Open();
oracleCmd.Connection = con;
oracleCmd.CommandText = @"SELECT 'DUH' FROM DUAL";
oracleCmd.CommandType = CommandType.Text;
string duh = "";
using (var r = oracleCmd.ExecuteReader())
{
while (r.Read())
{
duh = r["DUH"].ToString();
}
}
return duh;
}
catch (Exception ex)
{
return null;
}
}
更改TNS_NAMES.ORA文件,以使连接失败。
查询仍然返回“ duh”,因为已缓存连接。