由于某种原因,我的应用程序不会拿起tnsname文件,除非我 从.ora文件中删除了其他命名方法(命名方法,tnsnames,EZCONNECT,LDAP的顺序),因为您可以看到优先顺序是正确的。我不想从sqlnet.ora文件中删除那些命名方法 但是通过添加以下设置 我已经将Dan Keller和TNS_ADMIN设置一起提出了建议 有了,Oracle能够获取TNS名称文件。 所以澄清设置元素看起来像这样,
<settings>
<setting name="NAMES.DIRECTORY_PATH" value="TNSNAMES"></setting>
<setting name="TNS_ADMIN" value="d:\oracle\product\11.2.0\client_1\network\admin\"/>
</settings>
我有一个网络应用
我从Nuget https://www.nuget.org/packages/Oracle.ManagedDataAccess/12.1.22
下载了以下Oracle托管数据访问开发服务器上的当前oracle客户端是11.2.0.3 32位
我已将web.config设置为包含以下内容
<settings>
<setting name="TNS_ADMIN" value="d:\oracle\product\11.2.0\client_\network\admin"/>
</settings>
</version>
但是我收到以下错误:
'OracleInternal.Network.AddressResolution'的类型初始化程序引发了异常。
有什么建议吗?感谢。
[编辑] 这是异常中的一些更多信息
'OracleInternal.Network.AddressResolution'的类型初始值设定项引发了异常。
at OracleInternal.Network.AddressResolution.Resolve(String TNSAlias,ConnectionOption&amp; CO,String instanceName)
在OracleInternal.ConnectionPool.PoolManager 3.ResolveTnsAlias(ConnectionString cs)
at OracleInternal.ConnectionPool.PoolManager
3.Initialize(ConnectionString cs)
在OracleInternal.ConnectionPool.OraclePoolManager.Initialize(ConnectionString cs)
在OracleInternal.ConnectionPool.OracleConnectionDispenser 3.GetPM(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, Boolean& bAuthenticated, Boolean& newPM)
at OracleInternal.ConnectionPool.OracleConnectionDispenser
3.Get(ConnectionString cs,PM conPM,ConnectionString pmCS,SecureString securedPassword,SecureString securedProxyPassword)
在Oracle.ManagedDataAccess.Client.OracleConnection.Open()
答案 0 :(得分:0)
Oracle Managed不使用TNS名称文件,而是使用app / web.config文件中的自定义“配置”部分。您可以使用Oracle 12托管驱动程序连接到Oracle 11数据库。托管驱动器将忽略先前安装的11g 32位。
有一点需要注意,托管驱动器不适用于Oracle用户定义类型。
class main(object):
答案 1 :(得分:0)
在您的SQLNET.ORA文件中,可能是它从oracle 11安装中找到了TNSNames文件,但是oracle 11配置为在检查TNSNames之前检查LDAP或EZConnect。
您可以覆盖此设置,而无需手动输入TNSNames中的内容,这是使用TNSNames文件的好处,例如,如果您的组织更改服务器并且数据库组管理TNSNames文件。
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="NAMES.DIRECTORY_PATH" value="TNSNAMES"></setting>
</settings>
</version>
</oracle.manageddataaccess.client>