1.IIS->[网站]->属性-》连接超时。默认为120秒

2.WEB.CONFIG 手工添加httpRuntime,如

<system.web>
 <httpRuntime maxRequestLength="1000000" executionTimeout="2000" />
</system.web>

3.同步执行WEBSERVICE时,需要设置TIMEOUT属性,如

CompilerSvr.MyFavoritesService compiler=new FDN.DMS.Controls.CompilerSvr.MyFavoritesService();
   compiler.Timeout =2000000; //毫秒

错误处理封装

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;

/** <summary>
/// Summary description for Error
/// </summary>
public class ErrorManager
{
    private System.Timers.Timer m_timer;
    private Hashtable m_htErr;

/** <summary>
    /// 私有的构造函数
    /// </summary>
    private ErrorManager()
    {
        this.m_timer = new System.Timers.Timer();
        this.m_timer.Enabled = false;
        this.m_timer.Interval = 12 * 60 * 60 * 1000;    //默认12个小时执行一次
        this.m_timer.Elapsed += new System.Timers.ElapsedEventHandler(m_timer_Elapsed);
        this.m_htErr = new Hashtable();
    }

/** <summary>
    /// 单例模式的接口
    /// </summary>
    public static readonly ErrorManager Instance = new ErrorManager();

/** <summary>
    /// 设置定时器的频率,单位是毫秒
    /// </summary>
    /// <param name="Interval">毫秒</param>
    public void SetTimerInterval(int Interval)
    {
        this.m_timer.Interval = Interval;
    }

/** <summary>
    /// 定时器开始
    /// </summary>
    public void TimerStart()
    {
        this.m_timer.Enabled = true;
    }

/** <summary>
    /// 定时器结束
    /// </summary>
    public void TimerStop()
    {
        this.m_timer.Enabled = false;
    }

/** <summary>
    /// 发生了一个错误,把错误信息保存起来,并返回错误的id,便于页面中读取
    /// </summary>
    /// <returns>返回错误的id</returns>
    public string AddError()
    {
        string key = Guid.NewGuid().ToString();
        string msg = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            + HttpContext.Current.Server.GetLastError().GetBaseException().Message;
        this.m_htErr.Add(key, msg);

HttpContext.Current.Server.ClearError();

return key;
    }

/** <summary>
    /// 返回指定Key的错误信息,前19个字符是错误发生的时间
    /// </summary>
    /// <param name="key">key,是一个guid</param>
    /// <returns>返回错误信息</returns>
    public string GetError(string key)
    {
        return this.m_htErr[key].ToString();
    }

/** <summary>
    /// 定时在Hashtable中清理错误信息
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void m_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        ArrayList list = new ArrayList();
        lock (this.m_htErr)
        {
            DateTime now = DateTime.Now;
            TimeSpan ts;
            foreach (string key in this.m_htErr.Keys)
            {
                //前19个字符是错误发生的日期,yyyy-MM-dd HH:mm:ss
                string time = this.m_htErr[key].ToString().Substring(0, 19);   
                ts = now - Convert.ToDateTime(time);
                if (ts.TotalMinutes > 20)   //把20分钟前的错误信息从hashtable中清除
                    list.Add(key);
            }

foreach (string key in list)
            {
                this.m_htErr.Remove(key);
            }
        }

}

Session操作的封装#region Session操作的封装
    /** <summary>
    /// 取得指定键值的Session
    /// </summary>
    /// <param name="key">键值</param>
    /// <returns>键内容值</returns>
    public object GetSession(string key)
    {
        object val = HttpContext.Current.Session[key];
        if (val == null)
            throw new Exception("页面超时,请重新登录。");

return val;
    }

/** <summary>
    /// 设置Session
    /// </summary>
    /// <param name="key">键值</param>
    /// <param name="val">键内容</param>
    public void SetSession(string key, object val)
    {
        HttpContext.Current.Session[key] = val;
    }
    #endregion
}

ASP.NET 2.0编程小技巧两则

 1、利用app_offline.htm

  在asp.net 2.0中,如果你要COPY站点,进行站点维护,部署,和进行大量修改,有可能要停掉你的WEB应用程序了,而以一个友好的方式提示给用户,比如什么“本 网站正在更新”等等的信息,在ASP.NET 2.0中,你可以建立一个叫app_offline.htm(大小写没关系)的静态HTM页面文件,其中修改成你要临时显示的内容,将其放在你的应用的根 目录下。这样,任何外部的请求的话,都会马上被转移到该页面了。这个时候,你的网站依然可以被访问,只不过你的应用不能被访问了。呵呵,那样的话,就可以 避免很多更新网站是的麻烦事了。

  当然,另一个方法,也可以在vs.net 2005的website菜单下的asp .net configuration管理工具中,使你的站点offline.

  要注意的是,这个app_offline.htm页面的大小,要大于512字节,用asp.net 之父SCOTT的话来说,就是"
Make sure the app_offline.htm file is large enough (512 bytes) to disable the IE “friendly http errors” feature

  2、利用MaintainScrollPositionOnPostback属性

  考虑到一个很长的页面,如果每次POSTBACK之后,那个IE的滚动条可能都会回到最开始的地方(最上面),而不会保留其原先已经有的位置, 这样用户会比较麻烦,又要把滚动条移动到原来的地方,在asp.net 2.0中,可以设置MaintainScrollPositionOnPostback属性为TRUE即可,即
<%@ Page Language="VB" AutoEventWireup="false" MaintainScrollPositionOnPostback="true" CodeFile="MaintainScrollPosition.aspx.vb" Inherits="MaintainScrollPosition" %>

DataGrid的多行提交:

尽管ASP.NET DataGrid是众所周知非常好的表格控件,不过,提起DataGrid的编辑功能,我们却不敢恭维了,就拿DataGrid的数据提交功能来说,的确 存在很大的问题:在DataGrid中,每编辑一行就要提交一行,即所谓“单行编辑、单行提交”,这样的话,如果编辑的行数过多,不仅用户操作繁琐,还会 造成对服务器的频繁访问,极大降低系统效率。

当然了,有一种借尸还魂的解决方法,那就是把所要编辑的内容转到其他的页中在TextBox中进行编辑。不过,仔细想想,这种方法难道不是自己在骗 自己吗,还有在Grid中我们编辑的时候总不能老是用Tab键来实现Grid(TextBox)之间的跳转吧,如果响应回车事件,那么需要程序员浪费很大 的精力来开发。

如何解决上述问题呢?下面我向大家推荐一个我正在使用的国产DataGrid:SmartGrid(天空软件站可以下载:http://www.skycn.com/soft/23547.html ),这个控件我已经用了好长的时间了,现在来同大家探讨一下SmartGrid的多行提交的方法:SmartGrid并没有DataGrid中的那些按钮列而是整个的表单只有一个提交按钮,无论你更改了一行或者是多行都可以一次性的提交,下面来随便看点例子:

实例:

上图中是一个比较好的编辑的例子,例子显示,你可以编辑多行也可以编辑一行,然后一起进行提交。

代码:

修改按钮的代码:

private void btonSave_Click(object sender, System.EventArgs e)

{

this.DataGrid1.ReadOnly = false;//进入编辑

this.DataGrid1.AllowAdd = true;//允许添加

this.DataGrid1.AllowDelete = true;//允许删除

}

此段代码是smartgrid的独有的属性你可以设添加删除 编辑 的各种的功能

保存按钮的代码:
private void Button2_Click(object sender, System.EventArgs e)

{

DataTable t = (DataTable)this.SmartGrid1.DataSource;

this.sqlDataAdapter1.Update(t);

t.Clear();

this.sqlDataAdapter1.Fill(t);

this.SmartGrid1.DataSource = t;

}

这是整体的把数据提交到数据库中,这种做法适合大数据量的情况

还有一种是数据逐行的提交到服务器

代码:

private void btonSave_Click(object sender, System.EventArgs e)

{

DataTable tb=(DataTable)this.SmartGrid1.DataSource;

SqlParameter[] parameters=new SqlParameter[5];

foreach(DataRow dr in tb.Rows)

{

parameters[0]=new SqlParameter("@customerId",""+dr[1]+"");

parameters[1]=new SqlParameter("@companyName",""+dr[0]+"");

parameters[2]=new SqlParameter("@contactName",""+dr[2]+"");

parameters[3]=new SqlParameter("@contactTitle",""+dr[3]+"");

parameters[4]=new SqlParameter("@address",""+dr[4]+"");

//EamPd 是类Execute是执行存储过程的函数parameters是存储过程所需要的参数

EamPd.Execute("CreatLayer",parameters);

}

}

转载于:https://www.cnblogs.com/suchenge/articles/1502234.html

asp.net 返回超时的解决方法相关推荐

  1. php处理大量数据 超时,PHP进行批量任务处理不超时的解决方法

    本文实例分析了PHP进行批量任务处理不超时的解决方法.分享给大家供大家参考,具体如下: PHP批量任务处理 PHP在批量处理任务的时候会超时,其实解决方法很简单了,就是把任务分割,一次处理一部分,任务 ...

  2. ASP+Access中文乱码的解决方法,ASP中文乱码,asp乱码问题

    确保编码声明正确(例:时尚淘女之家http://www.tao36524.com) 如果您使用的是国外空间,默认是西欧而不是GB2312,你可以通过强制为GD2312的方式! 在数据提取页面的第一行代 ...

  3. ios7自定义返回按钮后,右滑返回功能失效解决方法

    ios7自定义返回按钮后,右滑返回功能失效解决方法 -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //开 ...

  4. php unserialize 返回false的解决方法

    php unserialize 返回false的解决方法 php 提供serialize(序列化) 与unserialize(反序列化)方法. 使用serialize序列化后.再使用unseriali ...

  5. [datatable]关于在DataTable中执行DataTable.Select(“条件“)返回DataTable的解决方法

    [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 参考文章: (1)[datatable]关于在Da ...

  6. “git push”后返回“Error 403”解决方法

    "git push"后返回"Error 403"解决方法 参考文章: (1)"git push"后返回"Error 403&quo ...

  7. 接口返回[object,Object]解决方法

    接口返回[object,Object]解决方法 参考文章: (1)接口返回[object,Object]解决方法 (2)https://www.cnblogs.com/kaiqinzhang/p/10 ...

  8. asp.net无法调试的解决方法(从安装配置步骤角度来看)

    asp.net无法调试的解决方法 如果iis是后来安装的,需要首先.net在命令工具中执行ASPnet_regiis -i,安装ASP.netframework 然后检查下边的配置: 如果iis不是后 ...

  9. 计算机网络ping超时,ping请求超时怎么回事?ping请求超时的解决方法

    电脑使用远程或者共享对方数据库的时候,会ping一下对方电脑.ping是系统自带的功能,一般用于检测网络连接是否正常,有时候会出现ping请求超时的情况,造成无法上网,如何解决?接下来,小编给大家整理 ...

最新文章

  1. ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...
  2. 新晋 ACM Fellow 陶大程,8 篇 NeurIPS 论文详解
  3. html 监听input输入框的值,利用原生JS实时监听input框输入值
  4. reactjs 全局状态管理:redux的组成
  5. CORS 跨域-哪些操作不受同源限制
  6. RIA and volta
  7. jdk中ArrayList的实现
  8. 文件操作:fseek函数和ftell函数
  9. OpenGL--纹理贴图基础
  10. Eviews(8)进行线性回归(ols一元)与格兰杰(Granger)因果关系检验操作步骤
  11. 同比和环比的计算方式
  12. 基于SSM架构的网上书城系统
  13. 刷题-洛谷-P1179 数字统计
  14. Qt的基本控件——列表控件
  15. 设计模式-原型模式C++
  16. JS和node.js的区别
  17. 使用层次聚类的有组织点云的快速平面提取(续)
  18. hadoop 四种压缩格式
  19. 电脑突然断电蓝屏导致Git错误的一种解决办法
  20. 为了边看美剧边学英语,我写了个字幕处理脚本

热门文章

  1. 电脑上同时安装了tensorflow和tensorflow-gpu,如何默认使用tensorflow-gpu
  2. 概率论-2.2 随机变量的数学期望(重点:随机变量X的期望)
  3. TCP传输-出现差错的解决办法
  4. [Jarvis OJ - PWN]——[XMAN]level3_x64
  5. 回溯法——N皇后问题
  6. swift 原生给h5发消息_Swift-WKWebView与JavaScript的细节,H5页面跳转原生界面
  7. Message-Digest Algorithm 5
  8. 解决执行 df -h 卡住,yum和rpm都无法安装软件问题
  9. hihocoder1398 网络流五之最大权闭合子图
  10. Oracle-计算岁数