1

ASP.Net アプリケーションを新しいサーバーにデプロイした後、最初にアプリをヒットしたユーザーは長い一時停止を取得します。これは、おそらくアプリが最初のコンパイルを実行しているためです。ただし、この一時停止は、アプリケーションがタイムアウトしてメモリからアンロードされた後にも発生するようです。

最初のコンパイルは 1 回しか発生しないので許容できますが、2 番目のコンパイルは不要なように思えます....この問題に対処する回避策はありますか? アプリケーションのタイムアウトを延長できればいいのですが、セッションのタイムアウトを延長する方法しかありません。これは、すべてのユーザー セッションを長時間メモリに保持するため、実行したくありません。

4

3 に答える 3

3

これは、IIS がワーカー プロセスをシャットダウンすることです。既定値は 20 分のアイドル時間です。IIS6 では、アプリケーション プールを構成し、アイドル タイムアウトをオフにすることができます([パフォーマンス] タブで)。IIS7 では、 Advanced Settings にあります。

于 2009-08-04T20:18:39.437 に答える
1

ワーカープロセスを存続させるための一般的な方法(私にはハックに見えますが)は、プログラムがアプリケーション内のURLに対して定期的にWeb要求を発行するようにすることです。

ASP.NETアプリをaspnet_compiler.exeでプリコンパイルすることにより、初期起動時間を短縮できます。これにより、最初のリクエスト時間がゼロになることはありませんが(ワーカープロセスを作成し、他のハウスキーピングを行う必要があります)、大幅に短縮されます。

于 2009-08-04T20:11:06.160 に答える
1

IIS のアプリケーション プールの推奨設定をいくつか見つけました。これらの設定の意図した結果は、アプリケーションが起動サイクルを通過する必要がある回数を減らすことです。これらの設定は、IIS 6 と IIS 7 に適用する必要があります。

  • リサイクル ワーカー プロセス:無効にします。これは、複数の Web サイトがあり、プロセスを分離しようとしている場合にのみ使用してください。
  • アイドル状態になった後にワーカー プロセスをシャットダウンする (分単位の時間):サーバーでリソースを共有している場合を除き、無効にします。この設定を無効にすると、Web サイトがアンロードされなくなり、サイトの起動時間が最小限に抑えられます。
于 2009-08-04T20:20:52.897 に答える