Oracle 通信: 无法连接到服务器, 或者无法对连接字符串进行语法分析

qq_36871210 2020-05-19 10:54:50
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): Oracle 通信: 无法连接到服务器, 或者无法对连接字符串进行语法分析 ---> OracleInternal.Network.NetworkException (0x80004005): Oracle 通信: 无法连接到服务器, 或者无法对连接字符串进行语法分析 ---> System.NotImplementedException: The method or operation is not implemented.
at System.Net.Security.NegotiateStream.AuthenticateAsClient (System.Net.NetworkCredential credential, System.String targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel) [0x00000] in <ae22a4e8f83c41d69684ae7f557133d9>:0
at OracleInternal.Network.Ano.StartNegotiation () [0x00218] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.Network.OracleCommunication.SendConnectPacketAndProcessResponse (OracleInternal.Network.AddressResolution addrRes) [0x000ef] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.Network.OracleCommunication.ConnectViaCO (OracleInternal.Network.ConnectionOption connOption, OracleInternal.Network.AddressResolution addrRes) [0x00130] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.Network.OracleCommunication.DoConnect (System.String tnsDescriptor) [0x00034] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.Network.OracleCommunication.DoConnect (System.String tnsDescriptor) [0x000a1] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.Network.OracleCommunication.Connect (System.String tnsDescriptor, System.Boolean doNAHandshake, System.String IName) [0x0000e] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect (Oracle.ManagedDataAccess.Client.ConnectionString cs, System.Boolean bOpenEndUserSession, System.String instanceName) [0x00328] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.ConnectionPool.PoolManager`3[PM,CP,PR].Get (Oracle.ManagedDataAccess.Client.ConnectionString csWithDiffOrNewPwd, System.Boolean bGetForApp, System.String affinityInstanceName, System.Boolean bForceMatch) [0x00944] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.ConnectionPool.OraclePoolManager.Get (Oracle.ManagedDataAccess.Client.ConnectionString csWithNewPassword, System.Boolean bGetForApp, System.String affinityInstanceName, System.Boolean bForceMatch) [0x0023b] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3[PM,CP,PR].Get (Oracle.ManagedDataAccess.Client.ConnectionString cs, PM conPM, Oracle.ManagedDataAccess.Client.ConnectionString pmCS, System.Security.SecureString securedPassword, System.Security.SecureString securedProxyPassword) [0x00314] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at Oracle.ManagedDataAccess.Client.OracleConnection.Open () [0x0058d] in <6fc3afebc14a48c0abc8cdbcaa680207>:0
at SW.ConnectSQLServerOperate.OpenMySQL () [0x00078] in C:\Users\57891\Desktop\1\华能港务局\华能港务局\Assets\Scripts\ConnectSQLServer\ConnectSQLServerOperate.cs:73
UnityEngine.Debug:Log(Object)
SW.ConnectSQLServerOperate:OpenMySQL() (at Assets/Scripts/ConnectSQLServer/ConnectSQLServerOperate.cs:91)
Test:StartConnectMySQL() (at Assets/Scripts/ConnectSQLServer/Test.cs:91)
UnityEngine.EventSystems.EventSystem:Update() (at D:/Program Files (x86)/2019.3.10f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)




无论什么换什么连接字符都报这个错误




代码
public void OpenMySQL()
{

Test._instance.informationShowText.text = "";
Test._instance.informationShowTextDown.text = "";

try
{

connectStr = "User Id=scott; password=tiger;Data Source=192.168.124.8:1521/orcl; Pooling=false;";

OracleConnection con = new OracleConnection(connectStr);

con.Open();



Test._instance.informationShowText.text = "成功连接服务器!\n";
Test._instance.informationShowTextDown.text = "成功连接服务器!\n";
isConnected = true;
Debug.Log("连接成功!!" );
}
catch (Exception ex)
{

Test._instance.informationShowText.text = "服务器连接已断开...\n";
Test._instance.informationShowTextDown.text = "服务器连接已断开...\n";
Debug.Log("连接失败!!" + ":" + ex.ToString());
isConnected = false;

}

}
...全文
1984 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你好 我要连接Oracle服务器,是不是必要要安装Oracle的客户端,在网上看到有的说需要有的说不需要。
  • 打赏
  • 举报
回复
你好,我也遇到Oracle 通信: 无法连接到服务器, 或者无法对连接字符串进行语法分析这个问题了,但是改成了引用System.Data.OracleClient这个连接 又报其他错,我想问问是不是我我连接的哪里不对
qq_36871210 2020-05-20
  • 打赏
  • 举报
回复
引用 1 楼 EdsionWang 的回复:
https://q.cnblogs.com/q/84082/ https://www.cnblogs.com/houzf/p/5740319.html
多谢,我现在连接成功了。 我之前是using Oracle.ManagedDataAccess.Client; 现在改成了using System.Data.OracleClient; 。然后连接成功了 但是问一下大佬,现在程序里面显示OracleConnection已过时,这个对程序有影响吗?
  • 打赏
  • 举报
回复
引用 2 楼 qq_36871210 的回复:
[quote=引用 1 楼 EdsionWang 的回复:]
https://q.cnblogs.com/q/84082/
https://www.cnblogs.com/houzf/p/5740319.html

多谢,我现在连接成功了。
我之前是using Oracle.ManagedDataAccess.Client; 现在改成了using System.Data.OracleClient; 。然后连接成功了

但是问一下大佬,现在程序里面显示OracleConnection已过时,这个对程序有影响吗?[/quote]

影响倒是不影响,谁知道以后呢,万一取消了也是后面好几个版本之后了,不过他要考虑向下兼容都不会动的
EdsionWang 2020-05-20
  • 打赏
  • 举报
回复
不影响使用的。你可以试试这样做 https://www.cnblogs.com/makesense/p/4221965.html
本章主要讲解oracle客户端连接oracle效劳器,主要有以下内容: 1.配置本地net效劳名配置 2.用sqlplus连接; 3.用toad连接; 一、配置本地net效劳名 首先说明我们的效劳器的IP为60.220.246.53,oracle的SID为czdb。 翻开配置本地net效劳名向导如下列图: 点击进入Net Configuration Assistant,出现如下列图所示: Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 选择默认的添加,然后下一步,如下列图: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。输入效劳名(效劳名其实就是oracle的SID)czdb,然后点击下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。 选择默认TCP,然后选择下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。输入主机名〔即oracle效劳器主机IP〕60.220.246.53,然后进入下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。 然后选择 ,进入下一步: 里面的详细信息说的是密码不对,说明是连接到了效劳器,我们只要改一下用户名和密码就可以了,然后点击更改登录: OK,测试成功; 另说明:查询本用户下的所有表的信息叫数据字典: user_tables;DBA_users; 两类数据字典表 dba一般是system用户 查表的信息从数据字典里查如:select table_name from user_tables; dual是名义表,不存任何东西. Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle远程连接数据库总结 Oracle代码 : orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = .xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 主要的参数为HOST、PORT、SERVICE_NAME 可能的问题: * 连接超时:很大可能性是windows自带的防火墙开着,屏蔽了1521端口 Oracle远程连接数据库总结 注:本文讲述了oracle数据库实例连接的配置过程,三个重要的配置文件位于C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目录下 1. sqlplus sys/oracle@orcl sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)。客户端就会首先在tnsnames.ora文件中找orcl的记录。如果没有相应的记录那么尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例。 Oracle客户端连接Oracle服务器全文共9页,当前为第5页。这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。   #你所要连接的时候输入得TNSNAME,如果listner启动失败尝试改IP地址   ora10gcsdl1 = Oracle客户端连接Oracle服务器全文共9页,当前为第5页。 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ora10gcsdl1) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IBM-66336DAFE8F .ibm )(PORT = 1521)) (CONNECT_DATA = (SERVE

111,044

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧