1

我正在使用 oracle 钱包从我的 .net Web API 2 代码登录到 Oracle 11 数据库实例。

问题是除非我在连接字符串中指定用户 ID 和密码,否则 oracle 钱包会抛出

Error MessageORA-01017: invalid username/password; logon denied

这不能证明使用钱包是合理的!对于任何可能的解决方案,我已经用谷歌搜索了很多但运气不佳。

sqlnet.ora

sqlnet.authentication_services=(NTS)
ssl_client_authentication=false
WALLET_LOCATION=
(SOURCE=
 (METHOD=FILE)
 (METHOD_DATA=
     (DIRECTORY=c:\temp\wallet)
 )
)

Tnsnames.ora

source= (DESCRIPTION=(ADDRESS=(PROTOCOL=<PROTOCOL>)(HOST=<server hostname>)PORT=<PORT>))(CONNECT_DATA=(SERVICE_NAME=<Global DB Name>)))

我的web.config文件读取以下特定部分 - 这样连接失败并出现上述错误

<settings>
<setting name="TNS_ADMIN" value="C:\ORA\TNSFILES"/>
<setting name="WALLET_LOCATION" value="(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=c:\temp\wallet)))"/>
<setting name="SSL_VERSION" value= "0" />
<setting name="SSL_CLIENT_AUTHENTICATION" value = "TRUE" />
</settings>

<connectionStrings>
<add name="OracleWallet1" providerName="oracle.manageddataaccess.client"     connectionString="Data Source=source;User Id=/;" />
</connectionStrings>

请建议这里可能是什么问题

4

1 回答 1

0

在最新的 ODP.NET 12.2 文档中,提供了有关使用 TLS/SSL 和钱包配置托管 ODP.NET 的步骤的更多详细信息。如果您仍然遇到错误,我建议您通过 Oracle 支持打开服务请求并提供来自客户端和服务器端的跟踪。使用钱包在很大程度上是一种配置练习。跟踪可以更容易地识别某些设置是否配置错误或错过了某个步骤。由于跟踪信息非常详细,因此不建议您将此信息放在 SO 或公共 Internet 上的任何其他位置。

于 2017-04-10T22:07:26.187 回答