0

Windows Server 2003 で IIS 6 を使用する MVC3 C# .Net Web アプリがあります。

いくつかのパフォーマンスの問題が発生しています。主にページの初期ロード時。

アプリをリリース モードにコンパイルしたところ、パフォーマンスはデバッグよりもはるかに優れています。ただし、それでもページの最初の読み込みは遅く、ページが一定期間休止状態にあり、ユーザーがアプリを再度使用すると、ページの読み込みが再び遅くなります。実行時コンパイルが進行中であり、一度コンパイルされると、一定期間後にオブジェクトがタイムアウトするように私には思えます。

最初のページの読み込みと休止中のページの読み込みを高速化するにはどうすればよいですか?

ある間隔で自動的にページをシミュレートしてロードする方法はありますか?

ありがとう

4

2 に答える 2

3

IISでのアプリケーションプールのロードとアンロードで発生していること。Webアプリケーションは、コンピューター上の他のデスクトップアプリケーションと同じように考えてください。実際にプログラムを開くには時間がかかりますが、一度開くとプログラム内のアクションがすばやく実行されます。したがって、Webアプリケーションに初めてアクセスすると、IISはアプリプール内でアプリケーションを起動します。

表示されている2番目の項目は、IISが一定期間非アクティブ(デフォルトは20分)後にアプリプールをアンロードすることです。デフォルトの期間の後、アプリプールはアンロードされます。要求がアプリケーションに着信すると、IISは、要求を処理する前に、アプリケーションを再度起動する必要があります。

ユーザーが最初にWebアプリケーションにアクセスしたとき、これを高速化するために実際にできることは何もありません。web.configを変更したり、Binフォルダー内のアイテムを変更したりすると、IISはアプリプールをリサイクルします。

アイドルタイムアウトの問題については、IISがアプリプールをアンロードするまで待機する時間を調整できます(最大29時間と思います)。

IIS6-アプリプールのタイムアウトの変更

[IIS7-アプリプールのタイムアウトの変更]

于 2012-08-27T19:57:35.693 に答える
1

ページを事前にコンパイルして、最初の読み込み時間を短縮できます。

詳細については、この MSDN セクションを参照してください: ASP.NET Web サイトのプリコンパイル

アプリケーションのタイムアウトを (非常に大きな値に設定して) いじると、休止中のアプリケーションの自動リサイクルが無効になるため、逆効果になる可能性があります。

于 2012-08-27T20:16:45.457 に答える