2009-08-04 9 views
1

新しいサーバーにASP.Netアプリケーションを配備した後、最初のユーザーがアプリケーションを起動するまでに長い時間がかかります。おそらく、アプリケーションが初期のコンパイルを実行しているためです。しかし、この一時停止は、アプリケーションがタイムアウトしてメモリから自身をアンロードした後にも発生すると考えられます。*セカンダリ*初期ASP.Netアプリケーションの起動時にコンパイル(?)を一時停止しますか?

1回目のコンパイルは一度だけ起こりますが、2回目は不必要であるように思います....この問題に対処する回避策はありますか?アプリケーションのタイムアウトを延長できるのは良いことですが、セッションタイムアウトを延長する方法があります。この方法では、長期間にわたってすべてのユーザーセッションをメモリに保持することになります。

+1

私は肯定的ではありませんが、IIS 6とIIS 7のアプリケーションプールで役立つチューニングがいくつかある可能性があります。 –

答えて

1

ワーカープロセスを有効に保つために一般的な方法(私には怪しげに見えますが)は、アプリケーションのいくつかのURLに定期的にWeb要求を発行するプログラムをいくつか持つようにすることです。

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

1

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

  • リサイクルワーカープロセス:無効。これは、複数のWebサイトを持ち、プロセスを分離しようとしている場合にのみ使用してください。
  • アイドル状態のシャットダウン後のワーカープロセス(分単位):サーバー上のリソースを共有していない限り、無効にします。この設定を無効にすると、Webサイトがアンロードされず、サイトの起動時間が最小限に抑えられます。
+0

私はワーカープロセスのリサイクルを無効にすることを推奨しています。健全なアプリは重複したリサイクルのために違いを気付くべきではありません。誤ったアプリが大いに役立ちます。私は正直に、それを有効にすることにはほとんど欠点を見ていません。 –

関連する問題