Исключение .Net LINQ to SQL - PullRequest
       0

Исключение .Net LINQ to SQL

2 голосов
/ 05 сентября 2010

Я использую C #, .NET и SQL Server с Linq2SQL.

Что означает эта ошибка?

Это ошибка вставки или чтения / выбора?

Функция Classes.BLL.Save (LPage l) сначала выбирает COUNT из базы данных, а затем вставляет новую запись в базу данных.

2010-09-03 04:57:56,264 System.Data.SqlClient.SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(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(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.ExecuteReader()
   at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
   at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
   at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
   at System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item)
   at System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item)
   at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
   at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
   at Classes.BLL.Save(LPage l)

Обновление:

Я знаю, что это исключение тайм-аута и оно приходит с сервера SQL.но ошибка говорит о двух вещах:

1) ошибка в Common.DbCommand.ExecuteReader () и

2) ошибка в DataContext.SubmitChanges (ConflictMode faultMode),

Я пытаюсь выяснить, является ли источником ошибки команда выбора или команда вставки.

Ответы [ 3 ]

2 голосов
/ 05 сентября 2010

Эта ошибка исходит от SQL Server, а не от Linq.Это просто означает, что операция с SQL Server не отвечала в течение установленного вами времени ожидания (вероятно, 30 секунд).Это может произойти из-за ожидания снятия блокировки для большего или большего количества записей или из-за конфликта других ресурсов.

0 голосов
/ 05 сентября 2010

"Время ожидания истекло. Время ожидания истекло до завершения операции, или сервер не отвечает."

Таким образом, это, вероятно, время ожидания.Можете ли вы пинговать хост сервера sql?Вы пытались создать файл UDL и протестировать свое соединение с этим?(Щелкните правой кнопкой мыши в папке, создайте новый пустой текстовый файл, переименуйте его в test.udl, дважды щелкните, чтобы открыть и заполнить необходимые данные о соединении, затем нажмите кнопку test)

С уважением,

Карел

0 голосов
/ 05 сентября 2010

Это ошибка выбора - запросы на вставку будут выполняться через ExecuteNonQuery, если я правильно помню.Хотя, эта ошибка, вероятно, будет отображаться другим способом или в форме для вставки.Это вызвано не Linq, а сервером Sql.

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