System.Data.SqlClient.SqlException 超时时间已到

简介: 错误信息:有关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾。************** 异常文本 **************System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。 (错误详细信息

错误信息:

有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。 (错误详细信息等于 很可能由 IncludeExceptionDetailInFaults=true 创建的 ExceptionDetail,其值为:
System.Data.SqlClient.SqlException: Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command)
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command)



************** 已加载的程序集 **************
mscorlib
程序集版本:4.0.0.0
Win32 版本:4.0.30319.18444 built by: FX451RTMGDR
基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------

错误信息或为:

 
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. (错误详细信息等于 很可能由 IncludeExceptionDetailInFaults=true 创建的 ExceptionDetail,其值为:
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.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, RunB...)。

Server stack trace: 
   在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)


解决方案:

System.Data.Common.DbCommand sqlStringCommand = this.db.GetSqlStringCommand(SQL);
sqlStringCommand.CommandTimeout = 1800000;
this.db.ExecuteNonQuery(sqlStringCommand);

修改Command的TimeOut属性未合适的时间即可。


小注:

         也许你会说,我在连接字符串中已经 设置了 Connect Timeout=80000 ,并且数据库中超时连接也是设置的值是一个很大的值。为啥到了30秒,仍然超时了呢??
         这是因为:
         你的设置并没有问题,是你混淆了  SqlCommand.CommandTimeout  和 SqlConnection.ConnectionTimeout 这两个的区别了。
         你的连接字符串中的超时只是设置的 SqlConnection.ConnectionTimeout 的值,而不是设置的 SqlCommand.CommandTimeout 的值。
         SqlHelper 中并没有 SqlCommand.CommandTimeout 的相关设置。需要你自己设置。
         下面是两个的比较:
         SqlCommand.CommandTimeout
         获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
         等待命令执行的时间(以秒为单位)。默认为 30 秒。
         SqlConnection.ConnectionTimeout
         获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
         等待连接打开的时间(以秒为单位)。默认值为 15 秒。

小注部分参考:点击打开链接


目录
相关文章
|
存储 C# 数据库
C# 生成唯一ID,有哪些方法?
【2月更文挑战第12天】
1951 0
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
4337 4
|
安全 Linux 网络安全
2022-渗透测试-git提权(Linux)
2022-渗透测试-git提权(Linux)
2022-渗透测试-git提权(Linux)
|
SQL 安全 数据挖掘
Acunetix 12-Web漏洞扫描初体验
Acunetix 12-Web漏洞扫描初体验
Acunetix 12-Web漏洞扫描初体验
|
4月前
|
缓存 安全 网络协议
Burp Suite Professional 2026.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2026.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
385 3
Burp Suite Professional 2026.4 发布 - Web 应用安全、测试和扫描
|
4月前
|
安全 JavaScript 前端开发
Burp Suite Professional 2026.4 发布 - 领先的 Web 渗透测试软件
Burp Suite Professional 2026.4 发布 - 领先的 Web 渗透测试软件
476 1
Burp Suite Professional 2026.4 发布 - 领先的 Web 渗透测试软件
|
6月前
|
人工智能 监控 机器人
2026年零门槛部署 OpenClaw(Clawdbot)接入A股数据,实现24小时股票分析保姆级教程
在AI赋能金融分析的浪潮中,OpenClaw(原Clawdbot/Moltbot)凭借开源灵活的架构,成为个人投资者打造专属智能分析助手的首选。通过接入A股实时数据,它能实现24小时市场监控、涨跌预警、潜力股推荐等核心功能,彻底解放人工盯盘的繁琐。而阿里云的稳定部署环境,更让这套系统实现全天候不间断运行,成为真正的“金融AI助手”。 本文基于OpenClaw v2026.1.25稳定版与QVeris免费A股数据接口,详细拆解阿里云OpenClaw部署步骤、A股数据接入流程、高级分析功能配置及多平台联动技巧,所有代码命令均可直接复制复用,即使无技术基础也能在1小时内完成从部署到实战的全流程。
10884 12
|
10月前
|
监控 Linux
CentOS系统中使用htop命令查看资源情况。
总的来说,`htop` 是一个强大且直观的工具,它通过友好的用户界面和丰富的功能选项,使得系统监控和进程管理变得更加高效和便捷。无论是为了解决性能瓶颈,分析资源分配还是普通的系统监控,`htop` 都是一个不可或缺的工具。
1118 13