1

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

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

存在:

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

根据IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述

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

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

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

它只需要将 IIS App 配置为AlwaysRunning。在其中WarmUpBackend,我们可以预加载 Web 服务所需的一切。

4

1 回答 1

0

使用服务自动启动提供程序可能会更好。

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

于 2017-10-26T12:42:19.320 回答