是否有人知道使用ASP.NET方法Application_Start进行应用程序预热有什么异议?
特别是对于Web服务,通常需要预先加载文件,缓存算法等等。
存在:
serviceAutoStartProvider
。serviceAutoStartProvider
分配给IIS App。initializationPage
分配给IIS App。但是,这两种方法都要求对每个应用程序进行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
中,我们可以预先加载网络服务所需的一切。