誰かがアプリケーションのウォームアップにASP.NETメソッドApplication_Startを使用して異論を知っていますか?通常のファイルをプリロードするために必要とされるウェブ・サービス、ために特にウォームアップにASP.NET Application_Startを使用することに異論はありますか?
、アルゴリズムをキャッシュしてなど
が存在します
- サービスオートスタートは、私たちが必要とするプロバイダ、serviceAutoStartProvider、https://weblogs.asp.net/scottgu/auto-start-asp-net-applications-vs-2010-and-net-4-0-series、:
- 新規登録
serviceAutoStartProvider
、具体的にはアセンブリ名です。 - IISアプリケーションに
serviceAutoStartProvider
を割り当てます。 - IISアプリケーションをAlwaysRunningとして設定します。
- 新規登録
- は、IISアプリケーションに8.0アプリケーションの初期化、https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization
- 割り当て
initializationPage
をIIS。 - IISアプリケーションをAlwaysRunningとして設定します。
- 割り当て
しかし、両方の方法はどのような多くの-多くのアプリケーションの場合と不快であるとリリースに関するその他のリスクがあり、各アプリケーションのIIS構成の変更を必要とします。 ASP.NET Application Life Cycle Overview for IIS 5.0 and 6.0に従って
:
ASP.NETは、アプリケーションドメインの寿命のためにではなく、それぞれのHttpApplicationインスタンスに対して一度(のApplication_StartとApplication_End)それらを呼び出します。
したがって、のApplication_Startは例えば、ウォームアップコードのための最高の場所のように思える:
protected void Application_Start(object sender, EventArgs e)
{
Task.Run(WarmUpBackend);
}
それだけAlwaysRunningとしてIISアプリケーションを設定する必要です。 WarmUpBackend
では、Webサービスに必要なものすべてを事前にロードできます。
Joe、ありがとう、なぜこのアプローチがApplication_Startよりもこのシナリオを解決するよりも優れていますか?私の質問は、Webページへのリクエストなしに、いくつかのWebサービスのウォームアップに関するものです。なぜならWebサービスのためには、通常、最も高価なもの:DBへの問い合わせ、キャッシュへの事前ロードなどです。 –