【问题标题】:System.ComponentModel.Win32Exception: The wait operation timed out ERRORSystem.ComponentModel.Win32Exception:等待操作超时错误
【发布时间】:2021-01-21 13:24:51
【问题描述】:

当前收到错误 System.ComponentModel.Win32Exception:等待操作超时

我尝试在 IIS 的配置编辑器中增加 executionTimeout 属性,并在我得到错误 Property 'ConnectionTimeout' is 'ReadOnly' 的代码中添加 conn.ConnectionTimeout = 200 , conn.commandtimeout= 200。

编译器错误消息:BC30526:属性“ConnectionTimeout”为“ReadOnly”。

我需要把连接和命令超时放在哪里?

Dim conn As New SqlConnection("server=xxx; database=xxx; user ID = xxx; Connect Timeout=30")
    
        Dim sqlconna As New SqlCommand
        sqlconna.Connection = conn
        Dim ds As New DataSet
        Dim adapter As New SqlDataAdapter
        cmdStringinv = "EXEC myquery "

      Dim cmdb As New SqlCommand(cmdStringinv, conn)
    
    
      conn.Open()
    
      adapter.SelectCommand = cmdb

      adapter.Fill(ds, "Part")
      maxrows = ds.Tables("Part").Rows.Count

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    您应该将您的数据库对象包含在Using 块中。您声明 sqlconna 但从不使用它。您的代码显示 DataSetDataAdapter 没有用处。如果您想要的只是Count,请使用.ExecuteScalar。您首先提到的错误听起来不像是数据库错误。这段代码是异步运行的吗?无论如何,这是我对您提供的代码的解释。

    Private Function GetRowCount() As Long
        Dim maxrows As Long
        Using conn As New SqlConnection("server=xxx; database=xxx; user ID = xxx;"),
                cmdb As New SqlCommand("Select Count(*) From SomeTable;", conn)
            conn.Open()
            maxrows = CLng(cmdb.ExecuteScalar)
        End Using
        Return maxrows
    End Function
    

    【讨论】:

    • 代码通常可以正常工作。它只是包含超时的位置和方式。
    猜你喜欢
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2013-12-02
    • 2017-01-03
    相关资源
    最近更新 更多