接続は閉じられませんでした。接続の現在の状態はオープンです
私はこの質問が何度も投稿されていることを認識しています.私はそれを徹底的に調査し、ほとんどすべてを試しましたが、修正方法を解決することはできません. 私が見たものはすべて、私のつながりを閉じるように言っていますが、かなり多くの異なる方法でそれを行ったように感じます. これが私の側のコーディングの問題なのか (ポインタや提案を教えてください)、それともサーバー構成の問題なのか (確認方法がわかりません) はわかりません。エラーが発生すると、他のページが一定期間機能しなくなるようです。複数のユーザーが同時にページをクリックすると、これは引き続き発生します。つまり、基本的にサイト全体がダウンします。追加のブラウザを開いてページを開くと、自分で再作成できます。
他の人が再利用できるように接続が閉じられていることを確認するために、このコードでできることはありますか? または、ユーザーが再試行してすべてをダウンさせないように、エラーを処理する別の方法はありますか?
皆さんありがとうございます!
以下の例は私が持っているもののシェルですが、問題が発生します。このサイトの例から作業するためにさまざまな方法を試したので、それらはわずかに異なります。
================================================== ================
コードビハインド:
Imports System.Data.SqlClient
Imports System.Data
Imports System.Web.UI.WebControls.DataControlField
Partial Class test_testConnections
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
LoadMetricDatesToDropDown()
loadMetricWorkstreamsToDropDown()
End If
End Sub
Sub LoadMetricDatesToDropDown()
Dim draftbit As Boolean = False
ddlDtSelector.Items.Clear()
Using oConn As New SqlConnection(ConfigurationManager.ConnectionStrings("aid1564conn").ConnectionString)
Using cmd As New SqlCommand("usp_DSBR_Date_Selections", oConn)
cmd.CommandType = CommandType.StoredProcedure
oConn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
While dr.Read
Dim li As New ListItem()
If dr("dt_status").ToString.ToUpper = "DRAFT" Then
li.Text = dr("Metric_Dt") & " (draft)"
draftbit = True
Else
li.Text = dr("metric_dt")
End If
li.Value = dr("Metric_dt")
ddlDtSelector.Items.Add(li)
End While
End If
End Using
End Using
End Using
If draftbit = True Then ddlDtSelector.SelectedIndex = 1
End Sub
Sub loadMetricWorkstreamsToDropDown()
Using oConn As New SqlConnection(ConfigurationManager.ConnectionStrings("aid1564conn").ConnectionString)
Using cmd As New SqlCommand("usp_DSBR_Get_Workstreams", oConn)
cmd.CommandType = CommandType.StoredProcedure
oConn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
While dr.Read
Dim li As New ListItem()
li.Text = dr("workstream_Name")
li.Value = dr("workstream_id")
workstreams.Items.Add(li)
End While
End If
End Using
End Using
End Using
End Sub
End Class
================================================== ================
ページ
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="testConnections.aspx.vb" Inherits="Test_testConnections" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlDtSelector" runat="server" AutoPostBack="true"></asp:DropDownList>
<asp:DropDownList ID="workstreams" runat="server" AutoPostBack="true"></asp:DropDownList>
<a href="testConnections.aspx">go</a>
</div>
</form>
</body>
</html>