为啥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响应很慢的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc为啥刷新页面后ajax响应

asp.net core中的Razor很慢

ASP.Net HTTP2 PushPromise 很慢

如何跟踪 ASP.Net JIT 编译?它很慢

来自新设备的 ASP.NET 第一个请求很慢 [关闭]

使用服务结构和反向代理时,asp.net 核心静态文件的加载时间很慢