ORA 12569数据包校验和失败

时间:2016-11-08 06:18:21

标签: c# .net oracle ssh

我正在尝试使用ssh密钥对身份验证方法连接到远程服务器(在cloudapp上)上的Oracle数据库。我可以使用此代码连接到服务器。

        PrivateKeyFile keyFile = new PrivateKeyFile(@"D:\ssh.ppk");
        var keyFiles = new[] { keyFile };
        var username = "Admin";

        var methods = new List<AuthenticationMethod>();

        methods.Add(new PrivateKeyAuthenticationMethod(username, keyFiles));

        var con = new ConnectionInfo("abc.xyz.net", 22, username, methods.ToArray());
        using (var client = new SshClient(con))
        {
            client.Connect();
            if (client.IsConnected)
            {
                var portForwarded = new ForwardedPortLocal("127.0.0.1", 3306, "127.0.0.1", 3306);
                client.AddForwardedPort(portForwarded);
                portForwarded.Start();
                var connectionString = "DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=3306)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ABC_DB)));PASSWORD=myPassword;USER ID=myUsername";
                //var connectionString = "DATA SOURCE=127.0.0.1:3306/ABC_DB;PASSWORD=myPassword;USER ID=myUsername";
                using (OracleConnection conn = new OracleConnection(connectionString))
                {
                    //conn.Open();
                    using (OracleCommand com = new OracleCommand("SELECT * FROM Table_Name", conn))
                    {

                        com.CommandType = CommandType.Text;
                        DataSet ds = new DataSet();
                        OracleDataAdapter da = new OracleDataAdapter(com);
                        da.Fill(ds);
                        GridView1.DataSource = ds;
                        GridView1.DataBind();
                    }
                }
                client.Disconnect();
            }
            else
            {
                Console.WriteLine("Client cannot be reached...");
            }
        }

当我尝试连接到数据库时,它会在行da.Fill(ds);处抛出异常数据包校验和失败。 如果您知道需要更改哪些设置,请在哪里帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

12569,00000,“TNS:数据包校验和失败”

     

原因:收到的数据与发送的数据不同。

     

操作:再次尝试交易。如果错误持续存在,请启用跟踪并重新执行操作。

服务器和客户端之间的tcp数据包必然不匹配。您必须在站点,服务器和客户端上启用跟踪。

联系网络管理员,根据跟踪信息修复数据包问题。

<强>参考文献:

Tracing Error Information for Oracle Net Services

获取ORA-12569:TNS:尝试通过客户端连接时数据包校验和失败。 (文件ID 257793.1)