我正在尝试配置我的解决方案,即使用Oracle.ManagedDataAccess库来使用TNS名称,如下所示:
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TNS_ADMIN" value="C:\oracle\TNS" />
</settings>
</version>
</oracle.manageddataaccess.client>
</configuration>是否可以在运行时通过代码从环境变量设置TNS_ADMIN路径值?
谢谢。
发布于 2019-09-26 16:46:17
我们做了与您的问题类似的事情。以下是我的解决方案:
internal static OracleDatabase ServerConnection()
{
try
{
string connectionString = TNSORA.TnsNames();
OracleConnection connection = new OracleConnection(connectionString);
OracleDatabase oracleDatabase = new OracleDatabase(connection);
return oracleDatabase;
}
catch {return null;}
}
internal static string TnsNames()
{
//TODO get your TNS from your environment variable, if you have more you have to select by code which is the correct one
}发布于 2019-09-26 18:02:32
只需从.NET配置文件中删除该设置即可。ODP.NET托管驱动程序将自动使用TNS_ADMIN环境设置中的当前值。
请注意,这与Oracle文档相矛盾,但不管怎样,它都可以工作。另请参阅Determining location of relevant tnsnames.ora file
https://stackoverflow.com/questions/58104817
复制相似问题