【问题标题】:.Net web app Performance issues.Net Web 应用程序性能问题
【发布时间】:2012-08-22 08:04:26
【问题描述】:

我有一个在 windows server 2003 上使用 IIS 6 的 MVC3 C# .Net Web 应用程序。

我们遇到了一些性能问题。主要针对页面的初始加载。

我已将应用程序编译为发布模式,并且性能比调试中要好得多。但是,页面的第一次加载仍然很慢,而且如果页面处于休眠状态一段时间,并且用户重新使用该应用程序,页面再次加载缓慢。在我看来,运行时编译正在进行中,一旦编译,对象会在一段时间后超时。

我可以做些什么来加快初始页面加载和扩展的休眠页面加载?

有没有办法在某个时间间隔自动模拟和加载页面?

谢谢

【问题讨论】:

  • 你的意思是 IIS 7 吗? IIS 6 出现在 Windows 2003 上。
  • 这是 IIS 6 BUILD 6002 Service Pack 2。不知道为什么服务器是这样配置的。不幸的是,这不是我的盒子

标签: asp.net-mvc-3 performance iis-6


【解决方案1】:

您可以预编译您的页面以加快初始加载时间。

有关详细信息,请参阅此 MSDN 部分: ASP.NET Web Site Precompilation

弄乱应用程序超时(通过将其设置为一个非常大的值)可能会适得其反,因为它会禁用休眠应用程序的自动回收。

【讨论】:

  • @Marten....谢谢。这也很有帮助。如果我能接受这两个答案,我会的。
【解决方案2】:

您在 IIS 中加载和卸载应用程序池时遇到的情况。将您的 Web 应用程序想象成您计算机上的任何桌面应用程序。实际打开程序需要时间,但是一旦打开 -> 程序中的操作运行得很快。因此,当您第一次访问 Web 应用程序时,IIS 会在应用程序池中启动该应用程序。

您看到的第二项是 IIS 在一段时间不活动(默认 20 分钟)后卸载应用程序池。在默认期限之后,应用程序池处于卸载状态。当请求进入您的应用程序时,IIS 必须再次启动应用程序,然后才能处理请求。

至于当用户第一次点击 Web 应用程序时,您实际上无法做任何事情来加快速度,它会发生。每当您更改 web.config 或更改 Bin 文件夹中的项目时,IIS 都会回收应用程序池。

对于空闲超时问题,您可以调整 IIS 等待它卸载应用程序池的时间(我相信最多 29 小时)。

IIS 6 - App Pool Timeout Change

[IIS 7 - App Pool Timeout Change]

【讨论】:

  • @Tommy...感谢您的反馈。有没有办法增加 20 分钟的默认值?
  • @MikeTWebb - 是的,我只是添加了这些链接。好像是上面的IIS 6或者7有些混淆,所以都贴出来了。
  • @Tommy....谢谢!您知道是否可以运行 util 来自动运行网页?不确定这是否是个好主意
  • 您可以 - 基本上有一种“心跳”服务,可以在某个时间间隔或发布后对您的网站进行 ping 操作。我真的不能说这是否是一个好主意,这仅取决于您拥有多少流量/负载以及部署更新或应用程序池回收后快速响应的重要性。
  • @Tommy....这样的心跳服务将如何吸引网络应用程序?性能是我们应用的一个问题
猜你喜欢
  • 2017-07-02
  • 1970-01-01
  • 2010-10-09
  • 2017-08-07
  • 2011-03-24
  • 1970-01-01
  • 2010-12-12
  • 2013-03-30
  • 1970-01-01
相关资源
最近更新 更多