問題が実際に何であるかを説明するのは簡単ではありませんが、私は ;-) を試みます。
ここにいくつかのデータがあります:
- IIS7 を搭載した Microsoft サーバー (RC2 ではない)
- 3GB ラム
- このアプリケーションのみがこのサーバー上にあります
- SQL 2008 エクスプレス
- リポジトリ パターン
- シンプルインジェクター
- MVCSitemapProvider
さて、問題に進みます。サイトは2秒で読み込まれるため、起動ではありません。アプリプールのリサイクル後。起動後、ページは 200 ミリ秒以下 (またはそれ以上) で読み込まれますが、場合によっては (いつとは言えません。これはランダムであり、リサイクル後ではないため)、最大 2 分以上かかることがあります。
問題を見つけるために一瞥してみました。次のように表示されます。
- ASP.NET 開始要求: 121456ms (これはランダムです)
- フィルタ: 2ms
- コントローラー:26ms
- ビュー: 298 ミリ秒
- ASP.NET 終了要求: 0ms
リクエストスタッキングのようなものですが、わかりません。
編集:
そのため、MVC SiteMap Provider 全体を削除しましたが、ファントム パフォーマンスの問題はまだ残っていました。
次に、IIS 構成を確認したところ、AppPool が ApplicationPoolIdentity ではなく NetworkService であることに気付きました (他の MVC ソリューションは ApplicationPoolIdentity で実行されます)。以前と同じように高速に見えます (ページの読み込みは 50 ミリ秒未満)! 問題が解決しない場合は、このスレッドに書き込みます。