是什么导致MSSQL中的错误“非阻塞套接字上的操作会阻塞”?

问题描述 投票:1回答:1

错误:异常查询是“在AllAccounts_BAK([Master_received_Day] ASC)上创建非压缩索引[I1]”,异常发生一个或多个错误。错误:异常内部异常无法从传输连接读取数据:非阻塞套接字上的操作将阻止。

以下是执行此查询的C#中的代码:

private void ExecuteQuery(string qStr)
{
    using (SqlConnection cnx = new SqlConnection(_ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand(qStr, cnx))
        {
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

在查询之前测试连接字符串,以确保它将通过检索两行数据来进行连接。没有人使用数据库。该查询已在SQL操作控制台中进行了测试,并且可以正常运行。它是Azure数据库的tcp连接。我使用这种代码加载了数据并完成了查询。是什么导致了这种错误?

c# sql-server tcp
1个回答
2
投票

好吧,除了连接超时和远程连接超时之外,还有另一个我发现埋在MS文档的内容中。如果在我的例子中,一个替换了执行open和执行的两行:

  cmd.Connection.Open();
  cmd.CommandTimeout = 0; // 0 sets it so the "command" doesn't time out!
  cmd.ExecuteNonQuery();

添加该行后,它工作正常!令我感到惊讶的是,没有更明确地说明这一点。如果有人能够解释这一点,那就太好了!

© www.soinside.com 2019 - 2024. All rights reserved.