1

我正面临这个问题。希望有人可以帮助我。该数据库具有以下内容:

SELECT * FROM V$VERSION

BANNER  
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production  
PL/SQL Release 11.2.0.4.0 - Production  
CORE 11.2.0.4.0 Production  
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production  
NLSRTL Version 11.2.0.4.0 - Production 

另一方面,我有最新的 Visual Studio Enterprise 2017 - 版本 15.9.7

当我做这个简单的代码时: 好的

这是图像的代码:

using System;
using System.Data;
using System.Linq;
using Oracle.DataAccess.Client;
using Dapper;


namespace ConexDapper
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime result = new DateTime();

            using (var conex = CreateConnection())
            {
                result = conex.Query<DateTime>("Select sysdate from dual", null, commandType: CommandType.Text).FirstOrDefault();
            }

            Console.WriteLine(result);
        }

        public static IDbConnection CreateConnection()
        {
            var provider = new OracleClientFactory();
            var conex = provider.CreateConnection();
            conex.ConnectionString = "Data Source=(DESCRIPTION =  (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 99.999.999.999)(PORT = 1525)) ) (CONNECT_DATA = (SERVICE_NAME = url.url.com) ));User Id=fail;password=fail;";

            return conex;
        }
    }
}

另外,当我尝试这种方式时。

测试conex-ok

但是,当我尝试连接新的 ODP 时。它失败。

ODP-失败

这是图像的代码:

using System;
using Oracle.ManagedDataAccess.Client;


namespace ConexDapper
{
    class Program
    {
        static void Main(string[] args)
        {
            string conexString = "Data Source=(DESCRIPTION =  (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 99.999.999.999)(PORT = 1525)) ) (CONNECT_DATA = (SERVICE_NAME = URL.url.url) ));User Id=fails;password=fails;";
            var cn = new OracleConnection(conexString);

            cn.Open(); // FAILSSSSS
            Console.WriteLine("version --> " + cn.ServerVersion);
        }
    }
}

另外,如果我尝试使用 Visual Studio 向导,结果是一样的。

测试 conex-FAILS

为了提供额外信息,两个 DLL 的版本是:

根据 dotPeek

Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342  

对于nuget的另一个:

<package id="Oracle.ManagedDataAccess" version="18.3.0" targetFramework="net47" />
4

0 回答 0