gpt4 book ai didi

c# - 执行 MySqlDataReader::Read() 时发生超时

转载 作者:行者123 更新时间:2023-11-29 02:23:44 25 4
gpt4 key购买 nike

在 MySqlDataReader 对象上调用 Read() 时出现以下异常。

using (MySqlConnection con = new MySqlConnection(myConnectionString))
{
con.Open();
using (MySqlCommand command = con.CreateCommand())
{
command.CommandText = String.Format("SELECT ID FROM MyTable WHERE ID IN ({0})", idList.ToString());
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
int id = Int32.Parse(reader["ID"].ToString());
if (!idHashSet.Contains(id))
{
idHashSet.Add(id);
}
}
}
}

程序似乎卡住了大约 8 个小时,然后最后吐出以下异常和堆栈跟踪。

Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0.
Parameter name: value
System.Net.Sockets.NetworkStream.set_ReadTimeout(Int32 value)
MySql.Data.MySqlClient.TimedStream.StartTimer(IOKind op)
MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
MySql.Data.MySqlClient.MySqlStream.LoadPacket()
MySql.Data.MySqlClient.MySqlStream.ReadPacket()
MySql.Data.MySqlClient.NativeDriver.FetchDataRow(Int32 statementId, Int32 columns)
MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior behavior)
MySql.Data.MySqlClient.MySqlDataReader.Read()

同样的错误大约在同一时间发生在不同的代码段,从不同的服务器读取完全不同的表,所以我倾向于认为问题存在于客户端。有什么建议吗?

最佳答案

很可能是这里的错误:https://bugs.mysql.com/bug.php?id=75604

如果 Environment.TickCount 在您执行命令时滚动(在服务器正常运行时间 24.9 天后),则连接器将抛出您所看到的确切异常。

关于c# - 执行 MySqlDataReader::Read() 时发生超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26909360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com