SQL Server(2014)存储过程不存在

时间:2015-09-24 18:50:32

标签: sql-server azure stored-procedures

我在存储过程执行时随机收到以下错误消息。似乎SQL连接超时尝试导出过程的参数。这个问题昨天早上7点开始(在我们的生产系统上)。当天/前一天晚上没有环境变化。在Azure中运行服务器。我们将连接/命令超时扩展到60秒。仍然会发生。

  

存储过程“{nameOfProc}”不存在。在System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand命令)

这是堆栈跟踪:

  

System.IndexOutOfRangeException:PARAMETER_NAME
         at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)          at System.Data.SqlClient.SqlDataReader.get_Item(String name)          在System.Data.SqlClient.SqlCommand.DeriveParameters()          在System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand命令)          at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText,SortedList slParameters,Int32 intMaxRowsReturned,Int32 intStartRecord,String strDataSetTableName,int32 intCommandTimeOut,DataSet& dsResults,DataSet& dsMessage)

     

System.Data.SqlClient.SqlException(0x80131904):超时已过期。操作完成之前经过的超时时间或服务器没有响应。 ---> System.ComponentModel.Win32Exception(0x80004005):等待操作超时
         在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action'1 wrapCloseInAction)          在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)          在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean& dataReady)          在System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()          在System.Data.SqlClient.SqlDataReader.get_MetaData()          在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)          在System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 timeout,Task& task,Boolean asyncWrite,SqlDataReader ds)          在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String方法,TaskCompletionSource`1完成,Int32超时,任务和任务,布尔asyncWrite)          在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method)          在System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior,String method)          在System.Data.SqlClient.SqlCommand.ExecuteReader()          在System.Data.SqlClient.SqlCommand.DeriveParameters()          在System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand命令)          at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText,SortedList slParameters,Int32 intMaxRowsReturned,Int32 intStartRecord,String strDataSetTableName,int32 intCommandTimeOut,DataSet& dsResults,DataSet& dsMessage)       ClientConnectionId:23d567df-9bc6-49e6-aa7e-a​​c1dfb81a0b7       错误号:-2,状态:0,类:11

System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
   at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
   at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText, SortedList slParameters, Int32 intMaxRowsReturned, Int32 intStartRecord, String strDataSetTableName, Int32 intCommandTimeOut, DataSet& dsResults, DataSet& dsMessage)

任何帮助将不胜感激!

尼克

0 个答案:

没有答案