应该是代码的问题..在PageLoad页面中.加入if(!Page.IsPostBack){代码}

释放你不用的所有对象..还有很多注意的事项.你可以搜索一下Google

以下是我的收藏:

==================================================

性能提高的技巧
1.避免不必要的执行操作
Page_Load 和 IsPostBack
void Page_Load(Object sender, EventArgs e) {
// ...set up a connection and command here...
if (!Page.IsPostBack) {
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}

void Button_Click(Object sender, EventArgs e) {
String query = "select * from Authors where FirstName like '%BRAD%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}

关闭不必要的Session状态
<%@ Page EnableSessionState="false" %>
注意使用Server Control
不必要时可以不使用Server Control
不必要时可以关闭ViewState

<%@ Page EnableViewState="false" %>

不要用Exception控制程序流程
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}

if (num != 0)
result = 100 / num;
else
result = 0;

禁用VB和JScript动态数据类型
<%@ Page Language="VB" Strict="true" %>
使用存储过程数据访问
只读数据访问不要使用DataSet
使用SqlDataReader代替DataSet
SqlDataReader是read-only, forward-only
关闭ASP.NET的Debug模式
使用ASP.NET Output Cache缓冲数据
页面缓冲
<%@OutputCache%>
Duration
VaryByParam
片断缓冲
VaryByControl

数据缓冲
过期依赖条件

Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));

Cache.Insert("MyData", Source, null,
DateTime.Now.AddHours(1), TimeSpan.Zero);

Cache.Insert("MyData", Source, null, DateTime.MaxValue,
TimeSpan.FromMinutes(20));

存储过程,那就不用说了

只读数据使用datareader,很多的数据库操作使用存储过程,
使用<%@outputcache Duration=60 VaryByParam="*"%>进行缓存
关闭debug模式
正确使用索引
if (!Page.IsPostBack)进行绑定不需要回传的代码
图片不要太精确
主页数据查询比较多但更新不常用的可以使用aspx动态生成html页面
控件不需要经常编程的 比如输入控件等都使用HTML控件
开通镜像服务

IIS的设置

最近在做IIS ASPNET的项目,对首页访问速度要求比较高。
通过配置AppPool可以有效提高IIS的响应速度。
启用IIS的HTTP压缩后,对于ASPX的程序处理和Ajax方式调用产生了问题。
IIS的HTTP压缩配置比较简单不能支持比较灵获得配置。
我搜 找到了 blowery.Web.HttpCompress(在线文档) 这个在性能上评价还不错。

配置
Web.config

blowery.web










excludedMimeTypes 包含的在此的Mime类型将不被压缩
excludedPaths 包含的在此的aspx将不被压缩

注意源代码中有一处bug,在处理excludePaths时不起作用
string realPath = "";
try
{
logger.Debug(app.Request.ApplicationPath);
realPath = app.Request.Path.Remove(0, app.Request.ApplicationPath.Length);
}
catch (Exception ex)
{
logger.Debug(ex.Message);
realPath = "/";
}

经测试 一个35K的页面,可以控制在10~15k大小,这会大大加快传输的速度。
总体效果不错。