System.Web.HttpException 异常类型'System.Web.HttpException'被抛出。在System.Web.HttpAsyncResult.End() at System.Web.SessionState.SessionStateModule.EndAcquireState(IAsyncResult ar) at System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar)
异常: System.Web.HttpException 无法连接到SQL Server会话数据库。 在System.Web.SessionState.SqlSessionStateStore.ThrowSqlConnectionException(SqlConnection conn, Exception e) at System.Web.SessionState.SqlSessionStateStore.SqlStateConnection..ctor(SqlPartitionInfo sqlPartitionInfo) at System.Web.SessionState.SqlSessionStateStore.GetConnection(String id, Boolean& usePooling) at System.Web.SessionState.SqlSessionStateStore.DoGet(HttpContext context, String id, Boolean getExclusive, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at System.Web.SessionState.SqlSessionStateStore.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at System.Web.SessionState.SessionStateModule.GetSessionStateItem() at System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(Object state)
异常: System.InvalidOperationException 超时已过期。在从池中获取连接之前,超时时间已过。这可能是因为所有池化连接都在使用并且达到了最大池大小。在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at System.Web.SessionState.SqlSessionStateStore.SqlStateConnection..ctor(SqlPartitionInfo sqlPartitionInfo)
然后我开始查看我的会话数据库服务器,并在我的SQL客户端中执行“exec sp_who”以查找AspState操作的许多记录。
我不知道是什么原因导致这种问题,因为我们在应用程序中没有进行任何重要的更改,只是修复了一些错误。
以下是我的Web应用程序环境的详细信息:
asp.net 3.5(从1.1转换)...在sqlmode session state的2个服务器群集中工作得非常好。
有人知道这个问题或者有任何调查想法吗?谢谢。
https://sqlperformance.com/2013/01/t-sql-queries/optimize-aspstate
有什么想法? DeleteExpiredSessions SP NET 4.5 version不要试图一次性删除所有行,也不要一个一个地删除。相反,以单独的事务方式每次删除n行 - 减少阻塞时间并最小化日志的影响。
- Kiquenet每次加载页面时(如果 Web 应用程序未正确创建,则可能在每个页面加载时多次调用),都会调用 SP dbo.TempResetTimeout,确保该特定会话的超时时间在其继续生成活动的同时得到延长。在繁忙的网站上,这可能会导致针对表 dbo.ASPStateTempSessions 的非常高的更新活动量。
查看:optimize-aspstatehttps://sqlperformance.com/2013/01/t-sql-queries/optimize-aspstate
- Kiquenet