ASP.Net应用程序第一次运行缓慢

Zah*_*raa 6 performance publish iis-6 web-applications

我有一个使用C#用ASP.Net 3.0编写的Web应用程序,生产机器是带有IIS 6.0和sql server 2005的Windows Server 2003.

应用结构

以下显示了我的ASP.net Web应用程序的结构:

IIS中的根应用程序(// localhost/es)包括公共页面,例如:母版页,主题,用户控件,图像文件夹.根应用程序下的子项目数(// localhost/es/sub-project).删除子项目中的web.config子项目的汇编文件位于根应用程序的bin文件夹下(子项目属性>> compile >>构建输出路径:..\bin \我的应用程序是一个3层Web应用程序(偏见层,数据层和表示层.此外,每个aspx页面的代码都在cs文件后面)

IIS设置

应用程序池回收工作程序"1740分钟后"进程处理空闲超时工作进程空闲后"20分钟"Ping工作进程每"30秒"
工作程序处理器的启动时间限制"90秒"工作程序处理器的关闭时间限制"90秒"

应用程序配置
缓存限制内存中的ASP文件"500"

缓存磁盘"2000"上的有限ASP文件

部署应用程序:

我将Web应用程序及其所有文件发布到生产服务器.

问题 :

应用程序第一次运行速度非常慢,加载需要10秒钟,但是每次下次请求页面时都会更快.我相信第一次请求页面时,它会编译并且通常比其他请求需要更多时间,因为页面位于高速缓存中.这里的问题是为什么第一次编辑页面需要花时间?

尝试解决问题:

我试着做以下事情:

  • 将所需文件的副本部署到生产服务器.
  • 更改了IIS设置,更改了工作进程的空闲超时关闭
  • 关闭跟踪
  • 关闭会话状态
  • 禁用页面的查看状态
  • 在web.config中设置debug = false
  • 在根应用程序下创建一个hello world子项目,需要5秒钟.
  • 创建单独的hello word web应用程序,如上所述,需要很长时间才能加载.
  • 删除page_load事件处理程序中的代码,但它不会影响性能.
  • 只发布根应用程序所需的文件(没有代码写在后面的代码中),子项目的源代码中的所有文件(代码都在后面的代码中),

但是,应用程序仍然开始缓慢但随后变得更快.

请帮助诊断并解决这个问题.

And*_*mer 5

除了天空所说的,您可以运行"预热脚本"作为部署过程的最后一步.虽然这不会加快第一次编译所需的时间,但使用这样的脚本至少可以防止用户看到启动缓慢.看看这样一个脚本的例子:http: //programmerramblings.blogspot.com/2008/09/aspnet-site-warmup.html

第一个对您的应用程序的请求很慢的另一个原因可能是IIS必须在第一个请求期间启动asp.net工作进程.但是,这不应影响对其他页面的第一次请求.


lon*_*dsi -4

这是没有办法解决的。当网站编译时,首次加载时总会有轻微的延迟。