为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
aluckdog 2022-01-16 15:04:33
错误:异常查询是 '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 连接。我已经使用这种代码加载了数据并完成了查询。是什么导致了这种错误?
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

好吧,除了连接超时和远程连接超时,我还发现了另一个隐藏在 MS 文档中的问题。如果在我的示例中,将执行打开和执行的两行替换为:


  cmd.Connection.Open();

  cmd.CommandTimeout = 0; // 0 sets it so the "command" doesn't time out!

  cmd.ExecuteNonQuery();

添加该行后,它工作正常!我很惊讶这没有更明显地说明。如果有人可以解释这一点,那就太好了!


查看完整回答
反对 回复 2022-01-16
  • 1 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信