实体框架 SQL 命令超时
我正在使用 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 结果选择器)
1 id, ...)
在 System.Data.Objects.ObjectContext.ExecuteFunction(字符串 函数名、ObjectParameter[] 参数)
在 Downloading.Entities.DownloadingEntities.DoSomethingEx(Nullable
在...\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
1 id,
resultSelector)
at System.Data.Objects.ObjectContext.ExecuteFunction(String
functionName, ObjectParameter[] parameters)
at Downloading.Entities.DownloadingEntities.DoSomethingEx(Nullable
...)
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试增加 SQL Server 连接字符串中的“连接超时”。
MSDN
Try increasing "connection timeout" in you SQL server connection string.
MSDN