현재 여러 유형의 보고서를 보거나 편집하기 위해 사용자가 로그인하는 응용 프로그램에서 작업 중이므로 다른 사용자는 변경 내용을 볼 수 있습니다. 그러나 사용자가 새 페이지로 이동하면 세션이 자동으로 시간 초과됩니다.자동 연결 시간 초과 (세션 시간 초과)
내 코드는 다음과 같습니다
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