私は読んでいます 自動開始ASP.NETアプリケーションに関するスコットガスリーの投稿 、これは自動開始するASP.NET 4.0アプリケーションの設定方法の例を提供します。
<applicationPools>
<add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0"
startMode="AlwaysRunning" />
</applicationPools>
<!--...-->
<sites>
<site name="MySite" id="1">
<application path="/" serviceAutoStartEnabled="true"
serviceAutoStartProvider="PreWarmMyCache" />
</site>
</sites>
<!--...-->
<serviceAutoStartProviders>
<add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
</serviceAutoStartProviders>
彼の投稿から不明確なのは、次の構成でASP.NETアプリケーションが自動起動するかどうかです。
<applicationPools>
<add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0"
startMode="AlwaysRunning" />
</applicationPools>
<!--...-->
<sites>
<site name="MySite" id="1">
<application path="/" serviceAutoStartEnabled="true" />
</site>
</sites>
ここでの違いは、起動するクラスが指定されていないことです。理想的には、アプリケーションがロードされるだけです。 サイトのアプリケーション に関するドキュメントは、serviceAutoStartEnabled
属性が機能するためにserviceAutoStartProvider
属性を必要とすることを示唆しています。ただし、追加の属性が提供されない場合に何が起こるかを示すものはありません。
serviceAutoStartProvider
を使用するには、serviceAutoStartEnabled
を指定する必要がありますか?serviceAutoStartProvider
が指定されていない場合はどうなりますか?ウォームアップ機能、特にIISに関連する機能は廃止されたか、開発されなくなりました。スコットの記事はVS2010以前のものです。彼らはスタック全体を新しいIISモジュールに書き直しました。
Application Initialization Module を使用して、IISからこれらすべてを直接構成できるようになりました。このモジュールは、調査しているウォームアップメカニズムよりも多くの機能を提供します。