【问题标题】:How to improve startup performance on IIS / ASP.Net如何提高 IIS / ASP.Net 的启动性能
【发布时间】:2009-04-22 00:29:19
【问题描述】:

我正在使用一个特别慢的虚拟 web 主机(名字隐瞒!),其中磁盘性能可能非常糟糕。因此,第一次访问我的 ASP.Net 网站可能需要 1 分钟以上的时间来加载。 (初始加载后,一切都在 RAM 中,一切正常。)

我想知道是否有人知道指示 IIS 预加载站点的方法?是精华,效法第一击?

我已经玩过所有预编译的东西,它有帮助,但它不能替代上述内容。

谢谢!

【问题讨论】:

标签: asp.net iis


【解决方案1】:

您的应用程序需要回收吗?所有回收选项都在 IIS 配置中,并且可以调整以适合您的应用程序。

理想的情况是删除所有应用程序回收,以便应用程序始终保持加载状态。只有在更改 web.config 文件或部署了新版本的应用程序时才会发生回收。

如果需要每天回收,根据之前的答案,可以使用批处理文件来回收应用程序,它还可以使用应用程序的 URL 调用 iexplore.exe 来“预加载”它。

【讨论】:

    【解决方案2】:

    为什么不能有一个已重置 iis 的批处理文件并安排它在每天的特定时间执行(当您的系统上没有用户时)?

    【讨论】:

      【解决方案3】:

      如果您的提供商可以在他们重新启动 Web 服务器时让您挂钩,您可以在 Web 服务器重新启动后让批处理文件/脚本文件访问您的网站。您只需要访问唯一的 ASP.NET 程序集文件即可将该特定程序集放入内存。因此,如果您有 1 个包含 10 页的程序集,只需点击其中一页。应该够了。如果您有超过 1 个程序集,请在每个程序集中点击 1 页以将这些程序集加载到内存中。

      如果您无法在您的提供商处获得它,那么您必须想出一种更聪明的方法来自己完成此操作(即了解提供商何时重置 Web 服务器并在您的计算机中安排任务以访问这些页面自己)。

      【讨论】:

        【解决方案4】:

        您希望预加载多少网站内容?多少页?

        您可以预编译站点,以消除问题的“编译”部分,但如果站点足够大,“预加载”站点可能没有意义。如果站点在多个主机上运行,​​则尤其如此。

        【讨论】:

          【解决方案5】:

          第一次从已编译的 ASP.NET 应用程序修改程序集后请求页面时,处理时间比处理普通页面请求要长得多。

          因此,对您的问题的一个简单解决方案是在进行任何修改后立即从您的应用程序中请求一个页面。这样一来,您是第一个请求页面的人,而且您会等待很长时间,而不是您的用户。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-01-22
            • 2021-07-23
            • 2011-05-07
            • 1970-01-01
            • 2017-06-26
            • 1970-01-01
            • 1970-01-01
            • 2021-02-22
            相关资源
            最近更新 更多