Hope someone can help.
We are trying to deploy an ASP.Net 2.0 application to a 3-node webfarm.
The application uses the ReportViewer control in local mode, hence we
need session state.
Because we dont wan't a single point of failure we use SQL Session
State.
I have setup a persistant sql session state database on a SQL 2000
server (this is a cluster in production, so no SPOF)
I have setup our web.config files to include;
" <sessionState cookieless="false"
mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="data
source=xxxxxxxxxxxx;database=xxxxxxxxxxxxxxxxxx;us er
id=xxxxxxxxxxxxxxxxxxx;password=xxxxxxxxxxxxxxxxxx xxx"
timeout="20" />"
Problem is, when I try to render a report, I get the following error, and
the session isnt ever useable again;
"System.Web.HttpException: Exception of type 'System.Web.HttpException' was
thrown. ---System.Web.HttpException: Unable to connect to SQL Server
session database. ---System.InvalidOperationException: Internal connection
fatal error.
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.CloseInternal( Boolean closeReader)
at System.Data.SqlClient.SqlDataReader.Close()
at System.Data.SqlClient.SqlCommand.FinishExecuteRead er(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderT ds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method,
DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior,
String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at System.Web.SessionState.SqlSessionStateStore.DoGet (HttpContext context,
String id, Boolean getExclusive, Boolean& locked, TimeSpan& lockAge, Object&
lockId, SessionStateActions& actionFlags)
--- End of inner exception stack trace ---
at
System.Web.SessionState.SqlSessionStateStore.Throw SqlConnectionException(SqlConnection
conn, Exception e)
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.GetIt emExclusive(HttpContext
context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId,
SessionStateActions& actionFlags)
at System.Web.SessionState.SessionStateModule.GetSess ionStateItem()
at
System.Web.SessionState.SessionStateModule.PollLoc kedSessionCallback(Object
state)
--- End of inner exception stack trace ---
at System.Web.HttpAsyncResult.End()
at System.Web.SessionState.SessionStateModule.EndAcqu ireState(IAsyncResult
ar)
at
System.Web.HttpApplication.AsyncEventExecutionStep .OnAsyncEventCompletion(IAsyncResult
ar)
System.Web.HttpException: Unable to connect to SQL Server session
database. ---System.InvalidOperationException: Internal connection fatal
error.
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.CloseInternal( Boolean closeReader)
at System.Data.SqlClient.SqlDataReader.Close()
at System.Data.SqlClient.SqlCommand.FinishExecuteRead er(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderT ds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method,
DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior,
String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at System.Web.SessionState.SqlSessionStateStore.DoGet (HttpContext context,
String id, Boolean getExclusive, Boolean& locked, TimeSpan& lockAge, Object&
lockId, SessionStateActions& actionFlags)
--- End of inner exception stack trace ---
at
System.Web.SessionState.SqlSessionStateStore.Throw SqlConnectionException(SqlConnection
conn, Exception e)
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.GetIt emExclusive(HttpContext
context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId,
SessionStateActions& actionFlags)
at System.Web.SessionState.SessionStateModule.GetSess ionStateItem()
at
System.Web.SessionState.SessionStateModule.PollLoc kedSessionCallback(Object
state)
System.InvalidOperationException: Internal connection fatal error.
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.CloseInternal( Boolean closeReader)
at System.Data.SqlClient.SqlDataReader.Close()
at System.Data.SqlClient.SqlCommand.FinishExecuteRead er(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderT ds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method,
DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior,
String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at System.Web.SessionState.SqlSessionStateStore.DoGet (HttpContext context,
String id, Boolean getExclusive, Boolean& locked, TimeSpan& lockAge, Object&
lockId, SessionStateActions& actionFlags)
"
Regards
Andrew Teece
Technical Architect, eNate