为啥asp.net响应很慢
Posted
技术标签:
【中文标题】为啥asp.net响应很慢【英文标题】:Why asp.net response is slow为什么asp.net响应很慢 【发布时间】:2010-11-11 07:28:37 【问题描述】:您好,我在 windows 2003 服务器上部署了我们的一个 asp.net 网站。
当我请求默认页面时,会话的第一个响应总是需要更多时间。我认为由于图像渲染/ css 和 javascript 。
有什么方法可以尽快做出响应。同样在我的 default.aspx 中,我使用 6 个 Web 部件和 6 个用户控件,每个 Web 部件使用一个。
【问题讨论】:
【参考方案1】:对 asp.net 站点的第一个请求将触发站点编译。 Visual Studio 2005 中引入了一些选项,允许您在部署站点之前预编译站点,这将避免在提供第一页时出现初始延迟。
本文详细介绍了第一次请求期间究竟发生了什么。 http://www.odetocode.com/Articles/417.aspx
【讨论】:
【参考方案2】:第一次向 IIS 请求 Web 应用程序总是需要更多时间,因为它必须启动应用程序并编译 ASPX 文件。它还必须执行与应用程序启动有关的代码,例如 Global.asax 中的 Application_Start。
您无法完全解决此问题,但您可以通过预编译网站、尽可能在后台进行初始化并确保在 web.config 文件中将编译调试设置为 false 来解决此问题。
【讨论】:
【参考方案3】:如果我理解正确(我经常不理解),对 ASP.NET 应用程序的第一个请求必须将应用程序编译到 CLI 中,这比后续请求花费的时间稍长。图像和 CSS/JS 对事物方案的影响很小。
您可以尝试预编译或调整应用程序池设置以尽量减少影响(减少工作进程回收次数等),但您总是会在应用程序/页面的第一个请求之后遇到此问题应用启动。
除此之外,研究缓存、优化输出(例如,最小化 HTTP 请求的数量、对服务器输出的 gzip 压缩)。这将使您的最终用户受益。
如前所述,确保在您的 web.config 中设置了 debug="false",即
<compilation debug="false">...</compilation>
这个小小的改变可以带来惊人的改变。
【讨论】:
以上是关于为啥asp.net响应很慢的主要内容,如果未能解决你的问题,请参考以下文章