实体框架 SQL 命令超时

发布于 2024-11-29 09:09:56 字数 2440 浏览 2 评论 0原文

我正在使用 Entity Framework 4.0 作为 Web 项目的 DAL 的一部分。我有一张繁忙的桌子,经常更新。在更新时,我将这项工作作为事务来完成。大多数时候一切都很好,但有时我会收到以下错误:

System.Data.EntityCommandExecutionException:发生错误 执行命令定义时。请参阅内部异常 详细信息。
---> System.Data.SqlClient.SqlException:超时已过期。
操作完成之前超时时间已过或 服务器没有响应。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔值breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler、SqlDataReader 数据流、 BulkCopySimpleResultSet BulkCopyHandler、TdsParserStateObject 状态对象)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,字符串resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔值 returnStream、布尔值 异步)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔值 returnStream、字符串 方法,DbAsyncResult 结果)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔值 returnStream、字符串 方法)
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)
在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 行为)
在 System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand 实体命令(CommandBehavior 行为)
--- 内部异常堆栈跟踪结束 ---
在 System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand 实体命令(CommandBehavior 行为)
在 System.Data.EntityClient.EntityCommandDefinition.Execute(EntityCommand 实体命令(CommandBehavior 行为)
在 System.Data.EntityClient.EntityCommand.ExecuteReader(CommandBehavior 行为)
在 System.Data.EntityClient.EntityCommand.ExecuteScalar[T_Result](Func2 结果选择器)
在 System.Data.Objects.ObjectContext.ExecuteFunction(字符串 函数名、ObjectParameter[] 参数)
在 Downloading.Entities.DownloadingEntities.DoSomethingEx(Nullable
1 id, ...)
在...\DAL\DownloadingEntities.Designer.cs:第 2035 行
在 Downloading.DAL.Repository.DoSomething(Int64 Id, ...)
在 ...\DAL\Repository.cs 中:第 982 行

我哪里错了?

I'm using Entity Framework 4.0 as part of my DAL for a web project. I have a busy table which is updated frequently. At the time of update, I do the job as a Transaction. Everything is OK most of the time but sometimes I get the following error:

System.Data.EntityCommandExecutionException: An error occurred
while executing the command definition. See the inner exception for
details.
---> System.Data.SqlClient.SqlException: 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.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.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand
entityCommand, CommandBehavior behavior)
--- End of inner exception stack trace ---
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand
entityCommand, CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDefinition.Execute(EntityCommand
entityCommand, CommandBehavior behavior)
at System.Data.EntityClient.EntityCommand.ExecuteReader(CommandBehavior
behavior)
at System.Data.EntityClient.EntityCommand.ExecuteScalar[T_Result](Func2
resultSelector)
at System.Data.Objects.ObjectContext.ExecuteFunction(String
functionName, ObjectParameter[] parameters)
at Downloading.Entities.DownloadingEntities.DoSomethingEx(Nullable
1 id,
...)
in ...\DAL\DownloadingEntities.Designer.cs:line 2035
at Downloading.DAL.Repository.DoSomething(Int64 Id, ...)
in ...\DAL\Repository.cs:line 982

Where am I wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌生 2024-12-06 09:09:56

尝试增加 SQL Server 连接字符串中的“连接超时”。

MSDN

Try increasing "connection timeout" in you SQL server connection string.

MSDN

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文