web-dev-qa-db-ja.com

ASP.NETアプリケーションを自動起動するにはserviceAutoStartProvider属性が必要ですか?

私は読んでいます 自動開始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が指定されていない場合はどうなりますか?
11
ahsteele

ウォームアップ機能、特にIISに関連する機能は廃止されたか、開発されなくなりました。スコットの記事はVS2010以前のものです。彼らはスタック全体を新しいIISモジュールに書き直しました。

Application Initialization Module を使用して、IISからこれらすべてを直接構成できるようになりました。このモジュールは、調査しているウォームアップメカニズムよりも多くの機能を提供します。

10
Brent Pabst