博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.Net超时时间已到解决办法
阅读量:5053 次
发布时间:2019-06-12

本文共 2344 字,大约阅读时间需要 7 分钟。

来源:

 

解决办法

1.在代码里面,把未关闭的连接关闭
2.扩大共享池,方法如下:
解决方法可以是修改连接池的连接生存期,因为默认值是60秒,即连接从应用程序被释放后可以在池中保存的时间。
具体操作步骤如下:
如果是ODBC的话,则可以在ODBC Data Source Administrator中手动更改,该程序位于“Start”菜单中的“Programs”->"Adminstrative Tools"(中文名:管理工具)下,或从"Control Panel"(中文名:控制面板)中打开“ODBC Data Source Administrator”(ODBC数据源管理器),再选择“Connection Pooling”(连接池)选项卡,双击驱动程序中的“”,选择“Pool Connetions to this drive”(使用池连接该驱动程序),把下面的时间60秒改的大一点,例如120。
如果是SqlConnection的共享连接,则为ConnectionString属性Connection Lifetime数值名称指定一个值,该值默认情况下是0,表示连接永远不会从池中被自动移走。如果指定一个不同的值,那么一旦连接被返回到池中,该值将和连接的创建时间及当前时间进行比较。如果生存期超过了Connection Lifetime的值,那么连接将从池中被移走。

问题的原因是与的连接没有显示关闭,而等系统自动回收是要时间的.解决的方法是改变连接池的大小.在连接字符串的后面加上以下代码:Enlist=true;Pooling=true;Max Pool Size=300;Min Pool Size=0;Connection Lifetime=300;user id=sa;packet size=1000

packet size参数取512到32767中的任一整数值

 

方法有以下两种:

1,在web.config中加上以下语句:

<system.web> 

<httpRuntime maxRequestLength="102400" executionTimeout="720" />

</system.web>  

来自MSDN解释:

     httpRuntime是配置asp.Net http运行时设置,以确定如何处理对asp.Net应用程序的请求。
     executionTimeout:表示允许执行请求的最大时间限制,单位为秒
     maxRequestLength:指示 ASP.Net 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
     useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。
     minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.Net 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。
    minLocalRequestFreeThreads:表示ASP.Net 保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 而导致的死锁。
    appRequestQueueLimit:表示ASP.Net 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 太忙”错误信息拒绝传入的请求。
    enableVersionHeader:表示指定 ASP.Net 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.Net 版本。对于生产环境,该属性不是必需的,可以禁用。

2,解决方法很简单,在代码中找到命令对象比如SqlCommand对象,给CommandTimeOut属性赋一个比较大的值。比如60秒,SqlCommand缺省超时设定是30秒。也可以将sqlcommand的timeout属性设为0.

备注:

值 0 指示无限制,在 CommandTimeout 中应避免值 0,否则会无限期地等待执行命令。

[C#]

public void CreateMySqlCommand()
{
   SqlCommand myCommand = new SqlCommand();
   myCommand.CommandTimeout = 15;
   myCommand.CommandType = CommandType.Text;
}

see as:http://msdn.microsoft.com/library/CHS/cpref/html/frlrfsystemdatasqlclientsqlcommandclasscommandtimeouttopic.asp?frame=true

   
SqlDataAdapter   da=   new   SqlDataAdapter();  
da.SelectCommand.CommandTimeout   = 60; 

转载于:https://www.cnblogs.com/kangshifu/archive/2008/08/13/1266880.html

你可能感兴趣的文章
yaml文件 .yml
查看>>
phpcms 添加自定义表单 留言
查看>>
mysql 优化
查看>>
WCF 配置文件
查看>>
oracle导出/导入 expdp/impdp
查看>>
JAVA 技术类分享(二)
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
数据结构之查找算法总结笔记
查看>>
Android TextView加上阴影效果
查看>>
Android 音量调节
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>