猿问

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

错误:异常查询是 'CREATE NONCLUSTERED INDEX[I1] ON AllAccounts_BAK ([Master_received_Day] ASC)' 出现一个或多个错误。错误:异常内部异常无法从传输连接读取数据:非阻塞套接字上的操作将阻塞。


这是执行此查询的 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 连接。我已经使用这种代码加载了数据并完成了查询。是什么导致了这种错误?


aluckdog
浏览 141回答 1
1回答

繁华开满天机

好吧,除了连接超时和远程连接超时,我还发现了另一个隐藏在 MS 文档中的问题。如果在我的示例中,将执行打开和执行的两行替换为:  cmd.Connection.Open();  cmd.CommandTimeout = 0; // 0 sets it so the "command" doesn't time out!  cmd.ExecuteNonQuery();添加该行后,它工作正常!我很惊讶这没有更明显地说明。如果有人可以解释这一点,那就太好了!
随时随地看视频慕课网APP
我要回答