我们在.Net 4.0和SQL Server 2008 R2上的登台Web应用程序运行平稳超过2个月。 突然之间,我们开始在应用程序中收到错误说:
错误消息:System.InvalidOperationException:内部连接致命错误。 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) 在System.Data.SqlClient.SqlDataReader.HasMoreResults()
每当我的数据库查询返回超过700行时,就会出现这种情况。 奇怪的是,我的生产网站(具有与登台相同的代码库)在连接到登台数据库时运行良好。
我尝试将我的登台Web服务器连接到生产数据库(登台数据库的类似副本),我得到了同样的错误。 此错误是相互关联的,有时会加载页面,有时我会收到错误。
如果我将行数减少到小于700,那么页面工作正常。
特定的存储过程只在我的页面中被调用一次。
我做了以下事情:
但没有任何帮助,我仍然在登台Web服务器中收到错误。 该查询在SQL Server Management Studio中运行正常,并且< 3秒。
任何人都可以建议任何解决方案吗?
这是调用存储过程的代码库:
string strSPName = SQLSchema.strSQLSchema + SPNames.<Some SP Name>;
using (conn)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = strSPName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
cmd.Parameters.Add(SPParams.<Some Param>, SqlDbType.Int);
cmd.Parameters[0].Value = <value of Param>;
conn.Open();
dsSubmitter = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dsSubmitter);
if (dsSubmitter.Tables.Count != 0)
{
dsSubmitter.Tables[0].TableName = DALConstants.<Table Name>;
}
conn.Close();
}
使用select语句以及主表和详细信息表之间的INNER连接,SP非常简单。主表具有~400行和详细表&gt; 10,000行。 SQL Query返回大约4000行。
答案 0 :(得分:0)
看起来像SqlAdapter的问题,你为什么不再尝试安装.net框架。
清理解决方案并重建它。