无法通过电子钱包从C连接到Oracle DB#

无法通过电子钱包从C连接到Oracle DB#,oracle,Oracle,我正试图通过钱包连接到供应商的数据库。为此,供应商提供了一个钱包zip文件,其中包含两个文件(一个.ora文件和一个.sso文件)。zip文件包含tnsnames.ora和cwallet.sso 首先,我安装了Oracle客户端版本19.0 Home1,它自动创建了一个名为sqlnet.ora的文件。我将文件tnsnames.ora复制到sqlnet.ora创建的同一文件夹中,并尝试使用不同的wasys连接数据库,但每次尝试都失败了。我试图以类似的方式实现,这在本链接中有解释,但得到的错误是“T

我正试图通过钱包连接到供应商的数据库。为此,供应商提供了一个钱包zip文件,其中包含两个文件(一个.ora文件和一个.sso文件)。zip文件包含tnsnames.ora和cwallet.sso

首先,我安装了Oracle客户端版本19.0 Home1,它自动创建了一个名为sqlnet.ora的文件。我将文件tnsnames.ora复制到sqlnet.ora创建的同一文件夹中,并尝试使用不同的wasys连接数据库,但每次尝试都失败了。我试图以类似的方式实现,这在本链接中有解释,但得到的错误是“TNS:失去联系”,“TNS:无法解析指定的连接标识符”

我尝试了指定的解决方案,但最终以错误告终。最后,现在的错误是“连接失败,因为目标主机或对象不存在”。连接详细信息在tnsnames中指定。包含服务名和主机名的ora。我在sqlnet.ora文件中添加了钱包位置,并添加了以下代码:

SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.2
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
SSL_SERVER_DN_MATCH = ON
C#中的连接代码如下:

            //string strCon = "User Id =XXXX;Password=XXXXXXX;Data Source=(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXXX)(PORT=2460))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX))" +
        //    "(SECURITY=(SSL_SERVER_CERT_DN='C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=mcsldb01.ckc6ued9hacf.ap-south1.rds.amazonaws.com')));";

        using (OracleConnection con = new OracleConnection(strCon))
        //using (OracleConnection con = new OracleConnection(@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXXX)(PORT=2460)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXXX;Password=XXXXXXXX;"))
        //using (OracleConnection con = new OracleConnection(cntn))
        {
            using (OracleCommand cmd = con.CreateCommand())
            {
                try
                {
                    //TNS_ADMIN and wallet directory entries can be entered in the app.config file.

                    con.Open();

                    Console.WriteLine("Successfully connected to Oracle Autonomous Database");

                    //Retrieve database version info
                    cmd.CommandText = "SELECT BANNER FROM V$VERSION";
                    OracleDataReader reader = cmd.ExecuteReader();
                    reader.Read();
                    Console.WriteLine("Connected to " + reader.GetString(0));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.ReadLine();
            }
        }
    }

请提出解决方案。我错在哪里?无法继续。

猜测可能是一个连接钱包,而不是提供的SSL钱包,即只是一种隐藏用户名和密码的机制。如果是这种情况,连接将类似于:

new OracleConnection(@"Data Source=NAME_IN_TNSNAMES;User Id=/"))
其中,TNSNAMES中的NAME_映射到TNSNAMES.ora文件中的条目

这里有这样的例子(从SQL Plus的角度)


仅限SSL钱包。现在,经过多次尝试后,错误有所不同。现在错误是“解析钱包位置时SSL失败”。我试图实现解决方案[,但在提到的证书上未理解。此证书是否应由供应商提供?