代码之家  ›  专栏  ›  技术社区  ›  John Wooten

是什么原因导致MSSQL中出现错误“对非阻塞套接字的操作将阻塞”?

  •  1
  • John Wooten  · 技术社区  · 8 年前

    错误:异常查询为“在AllAccounts\u BAK上创建非聚集索引[I1]” [船长日]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();
            }
        }
    }
    

    1 回复  |  直到 8 年前
        1
  •  3
  •   John Wooten    8 年前

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

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

    加上那条线后,效果很好!我很惊讶这没有说得更清楚。如果有人能解释太好了!