web-dev-qa-db-ja.com

asp.netサイトでの最初のページの読み込みが遅い

Asp.netを使用して構築されたサイトにアクセスすると、時々(常に夜間などの長いアイドル時間の後)、ページの読み込みに約15秒かかります(進行状況が表示されるまでに15秒かかります)。ページが速く表示されます)。

そのサイトの以降のページ、または更新は通常どおり高速です。他のマシンでも高速であり、最初のものだけが「ヒット」するようです。

ページトレースは何も行われません(全体のサイクルは数分の1秒でした)

だから私の質問は他にどこを見ればいいのですか?おそらくIISでしょうか。それとも、それはまだ私のasp.netアプリであり、手掛かりを間違った場所(トレース)で探しているだけですか?

IISサーバーをあまり制御できないため、特定の管理者に尋ねる前に、asp.netを介して確認できるものはすべて役に立ちます。

乾杯:D

40
Tabloo Quijico

IISアプリケーションプールは、30分間操作がないとシャットダウンされます。その後、リクエストを行うと、IISは基本的にWebサイトを再起動する必要があります。 iisでWebサイトのアイドル時間を変更して、それを回避することができます。

39

また、4.0フレームワークの Auto-Start 機能を調べることもできます。

21
Trevor

IIS 7を使用している場合、IISプラグイン呼び出しがアプリケーションのウォームアップに役立ちます

私はここでそれを使用した経験についてブログ投稿を書いています(自分のコンテンツへの投稿が許可されているかどうかわかりませんか?):

http://www.diaryofaninja.com/blog/2010/05/06/keep-your-aspnet-websites-warm-and-fast-247

10
Doug

おそらくウォームアップスクリプトを使用して、アプリケーションプールのリサイクルをスケジュールできます。最初に独自のアプリケーションプールを割り当て、それが役立つかどうかを確認します。

5
IrishChieftain

IISは、サイトがアプリケーションに戻るとアイドルをシャットダウンします。Application.OnStartが(global.asa内で)起動します)ここで多くの作業を行っている場合、アプリケーションの速度が低下する可能性があります。他のすべてのキャッシュで行われていることが空になり、すべてのDB接続が切断されます。

IIS設定にアクセスできない場合、IISでこの動作を構成できます。これを回避する簡単な方法は、スクリプトまたはメタリフレッシュ。

他のオプションは、その日の最初のページヒットが通常よりも数秒長くかかることを受け入れることです。

5
David Waters

過去に同じ問題に遭遇しました。問題の原因を突き止めることはできませんでしたが、IISアプリケーションプールが原因であると考えました。

2
madman1969