连接到Oracle时出错,TNS:侦听器当前不知道连接描述符中请求的服务

本文关键字:连接 描述 不知道 服务 请求 侦听器 Oracle 出错 TNS | 更新日期: 2023-09-27 18:00:52

在过去的两周里,我一直在为此寻找解决方案,并尝试了网络上提到的所有方法,但还没有弄清楚为什么这种情况仍然存在!

我可以从SQL Plus连接到Oracle数据库,但当我尝试从C#连接到它时,会出现以下错误。

{"ORA-1214:TNS:侦听器当前不知道请求的服务在连接描述符"}System.Exception"中{Oracle.ManagedDataAccess.Client.OracleException}

SQL plus正在使用LDAP解析连接,但在C#中,我尝试了以下连接字符串,

//string strConnectString = "Data Source=XYZ;User ID=user;Password=pwd";
string strConnectString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ABC1234.Xyz.abc)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=XYZ)));User ID=user;Password=pwd";

但是两个连接字符串都导致了错误,我使用的是Oracle。ManagedDataAccess。用于连接的客户端。

你们这些专家能告诉我正确的方向吗?

连接到Oracle时出错,TNS:侦听器当前不知道连接描述符中请求的服务

刚刚用SID而不是Service_Name更改了连接字符串,非常感谢那些引导我朝着正确方向前进的好朋友。

string strConnectString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ABC1234.Xyz.abc)(PORT=1521)))(CONNECT_DATA=(SID=XYZ)));User ID=user;Password=pwd"

在我的情况下,我想连接到oracle数据库实体框架,我使用了scaffold DbContext,并将SQLSERVER中使用的连接字符串的请求形式更改为oracle TNS连接字符串,如下所示,其工作方式如下所示:

    Scaffold-DbContext "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=Kaash-App1.kaash.local)(PORT=1521)))(CONNECT_DATA=(SID=kaashm)));User ID=trngkaash;Password=kaashnew" 
-Provider Oracle.EntityFrameworkCore 
-OutputDir    Models 
-Tables  USERS