.net linux上dotnet的Oracle连接问题

.net linux上dotnet的Oracle连接问题,.net,oracle,redhat,connectivity,.net,Oracle,Redhat,Connectivity,我正在尝试从Linux机器上的C#dotnetCore2.2微服务连接到Oracle数据库。它抛出了一个“无法解析连接主机名”错误ORA-12545。我正试图避免使用IP地址进行连接,并且无法在此设备上安装Oracle客户端,我怀疑这是一个很容易解决的问题。我应该提到,直接连接到IP在Linux上是可行的,只有主机名无法连接 在本地windows计算机上运行时,如果没有安装Oracle客户端,连接工作正常。我试过几个版本的ODP.NET核心包,但都没有用。linux机器是一个Red Hat 7.

我正在尝试从Linux机器上的C#dotnetCore2.2微服务连接到Oracle数据库。它抛出了一个“无法解析连接主机名”错误ORA-12545。我正试图避免使用IP地址进行连接,并且无法在此设备上安装Oracle客户端,我怀疑这是一个很容易解决的问题。我应该提到,直接连接到IP在Linux上是可行的,只有主机名无法连接

在本地windows计算机上运行时,如果没有安装Oracle客户端,连接工作正常。我试过几个版本的ODP.NET核心包,但都没有用。linux机器是一个Red Hat 7.7机器。我已尝试将ip/主机名添加到/etc/hosts文件中。主机名上的nslookup工作正常

有问题的代码相当简单:

string sConnectionString=$“用户Id={sUserId};密码={sPassword};数据源={sHost}:1521/{sServiceName};”;
_logger.LogI(sConnectionString);
OracleConnection con=新的OracleConnection(sConnectionString)//死在Linux上。
System.Console.WriteLine(con.State.ToString());
OracleCommand cmd=con.CreateCommand();
错误:Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA-12545:网络传输:无法解析连接主机名-->OracleInternal.Network.NetworkException(0x80004005):ORA-12545:网络传输:无法解析连接主机名-->System.Net.Internals.SocketExceptionFactory+ExtendedSocketException(00000001,11):资源暂时不可用


任何想法都会很好,我已经没有了

问题在于linux机箱与oracle机箱位于不同的域中。非产品与产品类型的对比。非prod linux box在初始连接尝试时从oracle接收到主机名的缩短版本。Windows box解决了这个问题,因为它们与oracle box位于同一个域中。在linux机器上更新/etc/resolve.conf以查看搜索中的两个域,解决了这个问题。理想情况下,oracle会在这种情况下返回完全限定的主机名,但这也会起作用

您的防火墙是否阻止了该地址/端口?我不认为是这样,我可以从linux框中映射端口和主机,它们显示tcp打开。