Ошибка таймаута в VB.NET при запуске сценария sql - PullRequest
1 голос
/ 20 января 2011

Мне было интересно, может ли кто-нибудь помочь мне понять, почему я получаю эту ошибку из простой хранимой процедуры, которую я создал в SQL Server 2008 R2.Я пытаюсь получить данные и вставить их во временную таблицу.если это проблема тайм-аута, как я могу увеличить продолжительность тайм-аута до 420 секунд.Насколько я понимаю, тайм-аут хорош только на 30 секунд.

Это полная ошибка:

Ошибка сервера в приложении '/ WebSite9'.

Истекло время ожидания.Время ожидания истекло до завершения операции или сервер не отвечает.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: Истекло время ожидания.Период ожидания истек до завершения операции или сервер не отвечает.

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.

Трассировка стека:

[SqlException (0x80131904): истекло время ожидания.Время ожидания истекло до завершения операции или сервер не отвечает.] System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое прерывание): +1951450 System.Data.SqlClient.SqlInternalConnection.OnError, исключение BoolebreakConnection) +4849003 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2394 System.Data.SqlClient.SqlDataReader.ConsumeMetaData () +33 System.Data.SqlClient.SqlDataReader.get_MetaData () +83 System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader для Sql.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, логический асинхронный) +954 System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, булево значение returnStream, метод String, результат DbAsyncResult) +162 System.Data.SqlClient.SqlCommand.RunExhaehaeBehBeor_Wegin_Wegin_WebBeath_RueBehBeh_RueBeh_RueBehBeh_Rue_BehBeR).SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) +141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior) +12 System.Data.Common.DbCommand.System.Data.ExeBeaderReader ()10 System.Data.Common.DbDataAdapter.FillInternal (набор данных DataSet, таблицы данных DataTable [], int32 startRecord, Int32 maxRecords, команда String srcTable, команда IDbCommand, поведение CommandBehavior) +130 System.Data.Common.DbDataAdap32Set (DataTableSill ().startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior) +287 System.Data.Common.DbDataAdapter.Fill (DataSet dataSet, String srcTable) +92 системы.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect (аргументы DataSourceSelectArguments) +1297 System.Web.UI.WebControls.BaseDataList.GetData () +38 System.Web.UI.WebControls.DataList.CreateControlan15D.Web.UI.WebControls.BaseDataList.OnDataBinding (EventArgs e) +54 System.Web.UI.WebControls.BaseDataList.DataBind () +55 System.Web.UI.WebControls.BaseDataList.EnsureDataBound () +60 System.Web.UI.WebControls.BaseDataList.CreateChildControls () +69 System.Web.UI.Control.EnsureChildControls () +87 System.Web.UI.Control.PreRenderRecursiveInternal () +44System.Web.UI.Control.PreRenderRecursiveInternal () +171 System.Web.UI.Control.PreRenderRecursiveInternal () +171 System.Web.UI.Page.ProcessRequestMain (логический includeStagesBeforeAsyncPoint, логический includeStagesAfterAsyncPoint) + 842


Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.4952; ASP.NET версия: 2.0.50727.4955

Ответы [ 2 ]

3 голосов
/ 20 января 2011
Dim cmd = connection.CreateCommand()    
cmd.CommandTimeout = 420

Используйте свойство CommandTimeout .

1 голос
/ 07 февраля 2014

Установить время ожидания в коде ASP

VB.NET:

Dim objCmd = conn.CreateCommand()
objCmd.CommandTimeout = 420

или Классика:

set con = createObject("ADODB.Connection")
con.open connectionString
con.commandTimeout = 420

Я бы также рассмотрел ваш план выполнения по вашему запросу, чтобы определить, есть ли у вас какие-либо операции сканирования таблиц, приводящие к неэффективному запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...