【问题标题】:Are there any objections from using ASP.NET Application_Start for warm-up?使用 ASP.NET Application_Start 进行热身是否有任何反对意见?
【发布时间】:2018-04-07 19:28:54
【问题描述】:

有人知道使用 ASP.NET 方法 Application_Start 进行应用程序预热有什么反对意见吗?

特别是对于网络服务,通常需要在哪里预加载文件、缓存算法等。

存在:

但是,这两种方法都需要更改每个应用程序的 IIS 配置,这在多对多应用程序的情况下会让人不舒服,并且在发布时会带来额外的风险。

按照ASP.NET Application Life Cycle Overview for IIS 5.0 and 6.0

ASP.NET 在应用程序域的生命周期内调用它们(Application_Start 和 Application_End)一次,而不是针对每个 HttpApplication 实例。

因此,Application_Start 似乎是热身代码的好地方,例如:

protected void Application_Start(object sender, EventArgs e)
{
    Task.Run(WarmUpBackend);
}

只需将 IIS 应用程序配置为 AlwaysRunning。在WarmUpBackend 中,我们可以预加载所有我们需要的网络服务。

【问题讨论】:

    标签: asp.net .net wcf warm-up


    【解决方案1】:

    使用Service autostart provider 可能会更好。

    Scott Guthrie 有一篇关于此的博文。

    【讨论】:

    • Joe,谢谢,但为什么这种方法比解决这种情况更好,而不是 Application_Start?我的问题与预热一些网络服务有关,没有对网页的请求。因为对于 Web 服务来说通常是最昂贵的:查询数据库、文件预加载到缓存等等。
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 2019-01-17
    • 2011-10-10
    • 2016-06-08
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多