首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux上与dotnet的Oracle连接问题

linux上与dotnet的Oracle连接问题
EN

Stack Overflow用户
提问于 2019-10-23 13:14:43
回答 1查看 438关注 0票数 0

我试图从Linux上的C# DotNetCore2.2微服务连接到Oracle。它正在抛出一个“无法解决连接主机名”错误,ORA-12545。我试图避免使用IP地址进行连接,并且无法在此框上安装Oracle客户端,我怀疑这是一个简单的修复方法。我应该提到,直接连接到IP确实能在Linux上工作,只有主机名无法连接。

在没有安装Oracle客户端的情况下,在本地windows机器上运行时,连接工作正常。我尝试过几个版本的ODP.NET核心包,但都没有效果。linux机器是一个RedHat7.7盒。我尝试将ip/主机名添加到/etc/host文件中。主机名的nslookup工作得很好。

违规代码相当简单:

代码语言:javascript
复制
string sConnectionString = $"User Id={sUserId};Password={sPassword};Data Source={sHost}:1521/{sServiceName};";
_logger.LogI(sConnectionString);

OracleConnection con = new OracleConnection(sConnectionString);//Dies here on 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):资源暂时不可用

任何想法都会很棒的,我都快用完了!

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 18:17:07

问题是linux盒位于与oracle盒不同的域上。一种非刺激型的东西。在最初的连接尝试中,非prod盒从oracle那里收到了主机名的缩短版本。Windows框解决了这一问题,因为它们与oracle框位于相同的域中。更新linux框上的/etc/rupve.conf以查看其搜索中的两个域,解决了这个问题。理想情况下,甲骨文会返回完全限定的主机名,但这也是可行的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58523735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档