私は現在、ユーザーがログインして複数のタイプのレポートを表示/編集するアプリケーションで作業しているため、他のユーザーはどのような変更が行われたかを見ることができます。しかし、ユーザーが新しいページに行くとき、セッションは自動的にタイムアウトします。接続は自動的にタイムアウトされます(セッションタイムアウト)
私のコードは次のとおりです。
Function Check_Access(ByVal strModule As String) As String
Dim drAccess As SqlClient.SqlDataReader, strUser As String
GetNetworkName()
strUser = HttpContext.Current.Session("LOGON_USER")
drAccess = SqlHelper.ExecuteReader(strConnOASIS, "Oasis.dbo.p_RPT_Check_Accessibility", strModule, strUser)
If drAccess.HasRows Then
If drAccess.Read() Then
Return drAccess.GetString(0)
End If
End If
drAccess.Close()
Return "0"
End Function
ソースエラーがある:
Line 45: strUser = HttpContext.Current.Session("LOGON_USER")
Line 46:
Line 47: drAccess = SqlHelper.ExecuteReader(strConnOASIS, "Oasis.dbo.p_RPT_Check_Accessibility", strModule, strUser) //Error
Line 48:
Line 49: If drAccess.HasRows Then
そして最後にスタックトレース:
[InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.]
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +445
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +318
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +132
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +195
System.Data.SqlClient.SqlConnection.Open() +122
Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) +412
Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString, String spName, Object[] parameterValues) +442
OasisInclude.GlobalFunctions.Check_Access(String strModule) in E:\Danish\VSO\OasisRedesign\Dev\Oasis\OasisInclude\GlobalFunctions.vb:47
Residential.Residential.Page_Load(Object sender, EventArgs e) in E:\Danish\VSO\OasisRedesign\Dev\Oasis\Oasis\Residential\Residential.aspx.vb:56
System.Web.UI.Control.OnLoad(EventArgs e) +109
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3321
。開いているすべてのデータベース接続を閉じていることを確認してください。データベース接続プールのサイズを増やすこともできますが、最終的には同じエラーが遅かれ早かれ発生する可能性があります。 – jjmontes