我正在尝试使用托管 ODP.NET 提供程序通过 SSL 连接到客户端的 Oracle 数据库。客户端提供了我在服务器上导入的自签名证书。为了测试连接,我创建了一个控制台应用程序,它只是打开连接然后关闭它。这成功了。但是,当在同一台服务器上尝试来自 ASP.NET 的相同简单连接时,我总是会收到此错误:
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): Network Transport: SSL failure in parsing wallet location --->
OracleInternal.Network.NetworkException (0xFFFFE700): Network Transport: SSL failure in parsing wallet location
这是连接字符串:
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL = TCPS)(HOST = xxx.xx.xx.xxx)(PORT = 3484))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = TEST.CLIENT.COM)(SID = TEST))); User Id = userid; Password = pa55word;
在配置文件中,我指向 SQLNET 设置的目录:
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TNS_ADMIN" value="C:\Oracle\tnsfiles" />
</settings>
</version>
</oracle.manageddataaccess.client>
最后,来自该目录中 sqlnet.ora 的这些设置:
SQLNET.AUTHENTICATION_SERVICES=(BEQ,TCPS)
ENCRYPTION_WALLET_LOCATION = (SOURCE=(METHOD=MCS))
WALLET_LOCATION= (SOURCE=(METHOD=MCS))
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.2
控制台应用程序的连接成功,但来自 ASP.NET 的连接因钱包错误而失败,是否有任何原因?他们使用完全相同的设置。我尝试了很多不同的东西,但我欢迎任何建议。