关于sql链接超时的问题

也许你会说,我在连接字符串中已经 设置了 Connect Timeout=80000 ,并且数据库中超时连接也是设置的值是一个很大的值。为啥到了30秒,仍然超时了呢??
         这是因为:
         你的设置并没有问题,是你混淆了  SqlCommand.CommandTimeout  和 SqlConnection.ConnectionTimeout 这两个的区别了。
         你的连接字符串中的超时只是设置的 SqlConnection.ConnectionTimeout 的值,而不是设置的 SqlCommand.CommandTimeout 的值。
         SqlHelper 中并没有 SqlCommand.CommandTimeout 的相关设置。需要你自己设置。
         下面是两个的比较:
         SqlCommand.CommandTimeout
         获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
         等待命令执行的时间(以秒为单位)。默认为 30 秒。
         SqlConnection.ConnectionTimeout
         获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
         等待连接打开的时间(以秒为单位)。默认值为 15 秒。
---------------------
作者:衣舞晨风
来源:CSDN
原文:https://blog.csdn.net/jiankunking/article/details/45221365
版权声明:本文为博主原创文章,转载请附上博文链接!

解决方法:

第一步:修改Web.config配置文件。在数据库连接字符串中加上连接时间Connect Timeout,根据实际情况定时间。

  1. <!--连接数据库-->
  2. <connectionStrings>
  3. <add name="strConnDB" connectionString=" Data Source=192.168.*.*;Initial Catalog=DatabaseName;Persist Security Info=True;User id=sa;Password=password;pooling=true;max pool size=800;min pool size=300;Connect Timeout=500"/>
  4. </connectionStrings>

第二步:修改command对象的CommandTimeout属性。

  1. SqlCommand cmd = new SqlCommand();
  2. cmd.CommandTimeout = 180;

这里设置的时间是180秒,即三分钟!可根据需要设置,如果过长,也可以设置为0,当此属性设置为0时表示不限制时间。此属性值应该慎用。

到此为止,问题完美解决。

补充:
SqlCommand.CommandTimeOut:获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
SqlConnection.ConnectionTimeout:获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。

原文地址:https://www.cnblogs.com/qqhfeng/p/10260240.html

时间: 2024-11-04 01:49:58

关于sql链接超时的问题的相关文章

SQL Server超时诊断和调优

SQL Server超时诊断和调优 一. 超时分析 下面是用户访问一个Web站点的常见错误: 详细错误描述如下: [SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.] System.Data.SqlClient.SqlConnection.OnError(SqlExc

sql连接超时

超时时间已到.在操作完成之前超时时间已过或服务器未响应”初步分析原因为对MSSQL操作时连接超时,知道这事,以前没留意,大概是在配置文件中设置连接时限,在网上找了下解决方法,大多说在数据库连接字符串里解决 SqlConnection con = new SqlConnection("server=.;database=myDB;uid=sa;pwd=password;") 改为: SqlConnection con = new SqlConnection("server=.;

SQL链接方式(转自:王志鹏博客)

*OLEDB方式连接 Sql身份验证模式:Provider="SQLOLEDB:data source=server_name;initial catalog=databasename;uid=username;pwd=password;"  Windows身份验证模式:ConnectString=”Provider=SQLOLEDB;Data Source=server_name;DataBase=databasename; Integrated Security=SSPI;Pers

oracle用plsql登陆出错,提示ORA-12170:TNS:链接超时 --------关闭防火墙试试

oracle用plsql登陆出错,提示ORA-12170:TNS:链接超时 但是使用sqlplus可以连接 ping 本机127.0.0.1 显示一般故障 后关闭防火墙,问题解决.

SQL Server超时诊断

连接超时 对于连接超时,首先可以查看Connectivity Ring Buffer中的LoginTimers类型错误来分析,如果想获得更详尽的信息,再通过抓包工具network monitor. 具体方法和语句可参考以下文章: https://blogs.msdn.microsoft.com/apgcdsd/2011/11/20/ring-buffersql-server-2008/ http://ultrasql.blog.51cto.com/9591438/1583446 查询超时 对于查

ASP.NET LINQ SQL执行超时的问题

最近在写一个航材取价的程序.由于执行的语句复杂,数据量比较大,容易造成超时. 看提示应该是执行SQL的时候超时,我在程序中用的linq. 实际把SQL语句单独执行的时候观察也要40秒左右. 查资料得知 SqlCommand.CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间. 等待命令执行的时间(以秒为单位).默认为 30 秒. 实际观察的时候也发现,一般提示出错就是在执行语句30秒的时候. 为解决此问题可以在程序中自定义设置执行语句超时的时间. 传统的ADO.

SQL链接服务器查询-OPENQUERY的使用

OpenQuery: 用途:与其他Server交互的技术,通过它能够直接访问其他数据库资源.可以跨平台连接,包括Oracle --创建链接服务器 exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码 写法: (1)查询 select * from OpenQuery([linkerServerN

简单的PL/SQl链接远程ORACLE数据库方法

首先到oracle安装目录下找到D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 中是否有tnsnames.ora 文件   打开tnsnames.ora 添加你要链接的数据库 示例226 =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.124.226)(PORT = 1521))    )    (CONNECT_DATA =   

MariaDB链接超时优化

查看mysql server超时时间: MariaDB [(none)]> use xspeeder; MariaDB [xspeeder]> show global variables like '%timeout%'; +----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | connect_timeout | 10 | |