系统.InvalidOperationException:内部连接致命错误.打开SQL连接时

本文关键字:连接 打开 SQL 致命错误 系统 内部 InvalidOperationException | 更新日期: 2023-09-27 18:10:55

我刚刚开始在c#上玩SQL,我正试图连接到远程SQL服务器。我已将我的IP添加到具有远程访问权限的主机列表中。

我的代码一直产生这个错误:

系统。InvalidOperationException:内部连接致命错误。
在System.Data.SqlClient.TdsParserStateObject.TryPocessHeader<>
在System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer<>
在System.Data.SqlClient.TdsParserStateObject.TryReadByteArray<。Byte[] buff, Int32 offset, Int32 len, Int32&totalRead>

跟踪实际上比这长,但这是前几行。

这是导致错误的代码(我的实际连接字符串有正确的用户名、密码和数据库名):

connectionString = "Data Source=173.254.28.27,3306;Network Library=DBMSSOCN;Initial Catalog=myDatabase;User Id=myUserName;Password=myPassword;";
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
    try { myConnection.Open(); }
    catch (Exception e) { Console.WriteLine(e.ToString()); }
}

任何帮助都将是非常感激的。

谢谢!

系统.InvalidOperationException:内部连接致命错误.打开SQL连接时

EDITED

如果您使用的是MySQL Server,那么您的连接字符串是错误的!

try this connectionString:

_connectionStr = new MySqlConnectionStringBuilder
            {
                Server = "173.254.28.27",
                Database = myDatabase,
                UserID = myUserName,
                Password = myPassword,
                ConnectionTimeout=60,
                Port = 3306,
                AllowZeroDateTime = true
            };
            _con = new MySqlConnection(_connectionStr.ConnectionString);
            try
            {
                _con.Open();
            }
            catch
            {
                Console.WriteLine("Error, help i can't get connected!");
            }

如果您正在使用SQLServer,请尝试通过连接字符串禁用连接池!

:

Pooling=false

祝你好运!

创建一个udl文件,如果它连接,那么问题是代码/应用程序,如果它不连接,那么它是你的防火墙,连接字符串,dll库等。这里重要的东西可能是连接字符串。执行以下操作:创建一个空文本文件并将其重命名为"myconnection.udl"。现在双击该文件,它将启动一个applet。您可以配置到数据库的连接并对其进行测试。(它将拾取注册的连接库等)。如果它给出OK,然后在记事本中打开udl文件,您将看到正确的连接字符串。粘贴到您的应用程序连接设置。UDL文件通常被误解。它们只是一个保存连接设置的文本文件。然后调用连接dll。如果udl文件工作,那么你有一个正确的连接字符串100%