M
Max Metral
I've seen other posts about such errors, but never a solution. It seems to
appear randomly under load. We are pretty vigilant about "using"
IDataReader's and Connections, so it's pretty unlikely that we're doing
something outwardly wrong that would excuse this sort of behavior. The
stack is:
TARGETSITE: System.Data.SqlClient.SqlDataReader
ExecuteReader(System.Data.CommandBehavior,
System.Data.SqlClient.RunBehavior, Boolean)
STACKTRACE: at
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior,
RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at Web.MyPage.Page_Load(Object sender, EventArgs e)
<removed by me>
Perhaps related, we also see random errors like this about columns we KNOW
exist in recordsets that are being returned:
MESSAGE: EventId
SOURCE: System.Data
TARGETSITE: Int32 GetOrdinal(System.String)
STACKTRACE: at System.Data.Common.FieldNameLookup.GetOrdinal(String
fieldName)
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at MyObject..ctor(IDataReader eventReader, EventData eventData)
<removed by me>
This is definitely unacceptable behavior from ADO, SQL Server, or both... No
code that an end user writes in a managed language should be able to create
this kind of untraceable havoc.
Any thoughts?
appear randomly under load. We are pretty vigilant about "using"
IDataReader's and Connections, so it's pretty unlikely that we're doing
something outwardly wrong that would excuse this sort of behavior. The
stack is:
TARGETSITE: System.Data.SqlClient.SqlDataReader
ExecuteReader(System.Data.CommandBehavior,
System.Data.SqlClient.RunBehavior, Boolean)
STACKTRACE: at
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior,
RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at Web.MyPage.Page_Load(Object sender, EventArgs e)
<removed by me>
Perhaps related, we also see random errors like this about columns we KNOW
exist in recordsets that are being returned:
MESSAGE: EventId
SOURCE: System.Data
TARGETSITE: Int32 GetOrdinal(System.String)
STACKTRACE: at System.Data.Common.FieldNameLookup.GetOrdinal(String
fieldName)
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at MyObject..ctor(IDataReader eventReader, EventData eventData)
<removed by me>
This is definitely unacceptable behavior from ADO, SQL Server, or both... No
code that an end user writes in a managed language should be able to create
this kind of untraceable havoc.
Any thoughts?