zoukankan      html  css  js  c++  java
  • 超时时间已过或服务器未响应的解决方法

    经检查后发现,这是因为页面在读取数据库中的数据时耗时太长,超过了默认的30秒。所以报出了以上错误,解决该问题的方法是:
    一,优化sql语句,提高查询速度
    二,延长sql超时的时间设置

    最好的方法当然是第一种了,这才是治本的方法。但sql优化可不是一件简单的活,具体的环境有不同的方法。本章主要看一下如何通过第二种方法来解决问题。

    1,首先设置sql的执行超时时间。
    如果我们的sql是直接使用SqlCommand对象来执行的,那么可以设置SqlCommand的CommandTimeout属性的值。
    比如:

    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
    {
    cmd.CommandTimeout=180
    }

    这样我们就设置了cmd的超时间时间是180秒。
    注意:SqlCommand.CommandTimeout属性的单位为秒,默认值是30。

    如果我们的sql是利用SqlDataAdapter对象来获取数据集合,那么我们还可以分别通过以下方法设置SqlCommand的超时时间。

    using (SqlConnection connection = GetConnection())
    {
    ……

    SqlDataAdapter sqlDA = new SqlDataAdapter();

    sqlDA.SelectCommand.CommandTimeout = 180;//设置查询sql的超时时间
    sqlDA.InsertCommand.CommandTimeout = 180;//设置插入sql的超时时间
    sqlDA.UpdateCommand.CommandTimeout = 180;//设置修改sql的超时时间
    sqlDA.DeleteCommand.CommandTimeout = 180;//设置删除sql的超时时间

    ……
    }

    也许大家在有些网站上看到以下解决方法
    1),在数据库的连接字符串中添加超时时间设置,如下:
    SqlConnection con = new SqlConnection'server=.;database=myDB;uid=sa;pwd=password;Connect Timeout=180'
    但我有测试过,无效,也有可能是我的测试方法错误吧!!!

    2),设置SqlConnection对象的超时时间。
    该方法是肯定行不通了,因为SqlConnection的ConnectionTimeout属性根本就是个只读属性,不允许设置值。从它的定义就可以看出来了,定义如下:

    //
    //摘要:
    //获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
    //
    //返回结果:
    //等待连接打开的时间(以秒为单位)。默认值为 15 秒。
    //
    // 异常:
    //System.ArgumentException:
    //所设置的值小于 0。
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [ResDescription("SqlConnection_ConnectionTimeout")]
    public override int ConnectionTimeout { get; }

    2,设置asp.net请求的超时时间。
    在上面的设置中我们有处理了sql的超时时间,但可能你的设置还是无效。这是为什么呢?因为你还没有设置asp.net请求的超时时间。
    要如何设置asp.net请求的超时时间呢?修改web.config的httpRunTime节即可,示例如下:

    <system.web>
     <httpRuntime executionTimeout="180" />
    </system.web>

    其中httpRuntime属性与executionTimeout属性的意思分别如下:
    httpRuntime:配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。
    executionTimeout:设置asp.net关闭前允许发生的上载秒数

    设置完这两步,我们的问题才算的真正的解决了。

  • 相关阅读:
    产品开发协作流程
    iOS性能优化
    iOS地图国内和国外的偏差
    Apple技术支持
    iOS应用架构谈 网络层设计方案
    form表单重复被提交
    SpringBoot+filter+listener+拦截器
    SpringBoot中的异常处理
    谷歌浏览器突然不能使用,并且出现报错码"STATUS_INVALID_IMAGE_HASH"解决方法
    form提交(图片,excel其他文件)
  • 原文地址:https://www.cnblogs.com/net_haibo/p/3079965.html
Copyright © 2011-2022 走看看