1

我有一个大问题,我的一个网站大多数时候都无法加载。不幸的是我还不能上传图片。问题陈述如下

在从池中获取连接之前经过的超时时间。这可能是因为所有正在使用的池连接和最大池大小已达到。

我得到一个突出显示的第 14 行:upcmd.Connection.Open()。错误进一步继续。

我根本不是专家,所以到目前为止我所做的事情并没有研究 <add name="ConnectionString" connectionString="Data Source=yianniscy.db.7015338.hostedresource.com;initial catalog=xxxxxxx;User id=xxxxxx;Password=xxxxxxx;**Max Pool Size=100**" />在 webconfig中添加最大池大小的内容

尽管此应用程序由一个人使用并且以前从未遇到过此问题,但问题仍然存在。这在我的托管服务提供商进行升级后立即开始。目前我知道连接仍然打开并且需要关闭。问题是我不知道该放什么以及放哪里。如果有人可以指导我确切的位置和确切的位置,我将不胜感激。

Partial Class Default2
Inherits System.Web.UI.Page

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
    Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)

    Using upcmd As New SqlCommand("SELECT login FROM Xuser_tab WHERE name=@logname", conn)

        upcmd.Parameters.Add(New SqlParameter("@Login_name", TextBox1.Text))
        upcmd.Connection.Open()
        Dim password_temp As String

        Try
            Dim dr As SqlDataReader = upcmd.ExecuteReader()

            If dr.Read Then
                password_temp = dr.Item(0)

                If password_temp = TextBox2.Text Then
                    Response.Redirect("~/Controlpanel.aspx")

                Else


                End If
                Image2.Visible = True
                Label1.Visible = True

            End If
4

2 回答 2

1

Using之后释放对象,End Using以便在离开此构造时关闭连接。

Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
      Using upcmd As New SqlCommand("SELECT login FROM Xuser_tab WHERE name=@logname", conn)

        // @logname != @Login_name..
        upcmd.Parameters.Add(New SqlParameter("@Login_name", TextBox1.Text)) 
        upcmd.Connection.Open()
        Dim password_temp As String

        Try
           Dim dr As SqlDataReader = upcmd.ExecuteReader()

           If dr.Read Then

           // code omitted

        End Using
conn.Close() // Optional
End Using
// Here will conn be disposed and connection closed

Close()和的区别说明Dispose()Dispose()是在幕后调用的方法End Using

于 2013-07-09T16:11:42.247 回答
0

我确定问题出在您的代码中,请检查以下内容:

  • 连接关闭了吗?
  • 您在数据库连接对象周围使用 usings 吗?
  • 您的错误处理和连接关闭如何?

对于单用户网站,您不需要大型连接池,通常一次只使用一个连接。使用一些代码,我们可以更具体。

于 2013-07-09T16:01:34.090 回答