超时时间已到.在操作完成之前超时时间已过或服务器未响应

周一刚来,公司便让我解决系统一直残留的问题,有一个频道页面一直打不开,报错,“超时时间已到。在操作完成之前超时时间已过或服务器未响应”
初步分析原因为对MSSQL操作时连接超时,知道这事,以前没留意,大概是在配置文件中设置连接时限,在网上找了下解决方法,大多说在数据库连接字符串里解决
SqlConnection con  =   new  SqlConnection( " server=.;database=myDB;uid=sa;pwd=password; " )
改为:
SqlConnection con  =   new  SqlConnection( " server=.;database=myDB;uid=sa;pwd=password;Connect Timeout=500 " )
似乎没效果。依然运行30秒即报超时!
突然感觉似乎应该可以在连接数据库代码中指明,式了下con的属性,有个ConnectionTimeout,
SqlConnection con  =   new  SqlConnection( " server=.;database=myDB;uid=sa;pwd=; " );
con.ConnectionTimeout 
=   180 ; // 报错,属性ConnectionTimeout 为只读!
尝试失败,再接着看command对象属性,发现其也有类似属性!CommandTimeout设置一下:
SqlCommand cmd  =   new  SqlCommand();
cmd.CommandTimeout 
=   180 ;
再运行,即解决,这里设置的时间的180秒,即三分钟!可根据需要设置,如果过长,也可以设置为0,当此属性设置为0时表示不限制时间。此属性值应该慎用。还需要在Web.config配置文件中设置http请求运行时限间
< system .web >   
< httpRuntime  maxRequestLength ="102400"  executionTimeout ="720"   />
</ system.web >

这里设置的为720秒,前面的属性maxRequestLength一般用于用户上传文件限制大小!默认一般为4096 KB (4 MB)。

你可能感兴趣的:(服务器)