gpt4 book ai didi

c# - ASP.NET MVC - 应用程序预热 - 使用两种方法中的哪一种?

转载 作者:太空狗 更新时间:2023-10-29 20:32:59 30 4
gpt4 key购买 nike

为了加快 ASP.NET MVC 应用程序的 react 时间,我们希望在应用程序安装后(或应用程序池回收后)对其进行“预热”。一些常用的查找数据应该从 SQL Server 数据库中获取,并存储到 .NET 提供的全局 System.Runtime.Caching.MemoryCache 对象中。

对于您的 ASP.NET 应用程序拥有专用 VM 和专用 IIS 的情况,我首先将应用程序池设置为“始终运行”——这是第 1 步。

鉴于这种情况,我认为有两种选择:

  1. 如所述的应用预热 in this blog post by Scott Gu基于 System.Web.Hosting.IProcessHostPreloadClient 接口(interface)。如果我理解正确,这段代码在应用程序池启动时运行,并且在第一个请求被应用程序接受之前

  2. global.asax.cs 中使用 Application_Start 事件。如果我理解正确,此事件仅在应用程序首次启动时调用一次(这将在安装后自动发生,因为应用程序池设置为“始终运行”-正确?)

那么 - 给定此设置 - 哪种是“预热”您的应用程序的首选方式?这两种方法之间有什么显着差异吗?在采用一种方法而不是另一种方法时,我需要注意什么?

感谢您提供任何输入、提示、警告或更详细地解释这一点的进一步链接!

最佳答案

简短的回答,使用 IProcessHostPreloadClient——它会在启动时立即运行。

Application_Start 用词不当,它实际上是在 第一个请求 上触发的。这意味着该站点可能会回收/重新启动并闲置,可能会变暖。

如果您的网站是在 IIS 7 或更高版本上,我不知道有什么理由使用 Application_Start

关于c# - ASP.NET MVC - 应用程序预热 - 使用两种方法中的哪一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46443672/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com