2012-05-11 9 views
3

通常は、ビューとコントローラを使用するMVC3アプリケーションがあります。MVC3仮想ディレクトリビューのフォルダが非常に遅い

また、IIS 7.5の仮想ディレクトリセットアップからビューを返すコントローラーTestControllerがあります。

ビュー内のIIS内部仮想ディレクトリTestが、自分のローカルディスク上のディレクトリをcshtmlページで指し示しています。

最初のリクエストでは、ビューのレンダリングには最大20分かかりますが、後続のリクエストには数秒かかります。

ローカルマシン上の実際のフォルダには、1000sのcshtmlページが含まれています。これが問題になりますか?

仮想ディレクトリからビューをレンダリングするのに20分(最初の要求)、ソリューション自体にビューをレンダリングするのに20分かかるのはなぜですか?

ご協力いただきまして誠にありがとうございます。

[これ以上の更新] - これは何度も起こり、その後ただちに停止しました。その後、仮想ディレクトリを削除してIISで再追加する必要があり、それが再び発生し始めました。

私は、アリのパフォーマンスプロファイラを実行することに決めました。これは、結果、私たちはデッドロックを見てすることができる感覚を持っている Ants performance profiler

(私が待っているのはほぼ30分後に停止した)が、私は自分自身を作成し​​た後、この

+0

この問題にIISに関連するものがあるかどうかはわかりませんが、何千ものcshtmlページがあまりにも多く聞こえます。彼らの目的は何ですか?これは大きなサイトですか?おそらくテンプレートエンジンのミス? –

答えて

1

をテストする方法の見当がつかないですバーチャルパスプロバイダでは、仮想ディレクトリからファイルが要求されると、ディレクトリ内のすべてのファイルを反復処理し、すべてのファイルに対してGetCacheDependencyを呼び出していることがわかりました。

私は上記Pranavの説明が正しいと信じている、ひいてはその答えが、以下、私が撮影したアプローチです:

  1. VirtualPathProvider独自のカスタムを作成Couchbaseのためにディスクからの私のファイルを移動ファイルは仮想ファイルは私のカスタムCacheDependecyを返す場合には
  2. invaliするために使用する他の 、デフォルト
  3. 使用MSMQを独自のカスタムされたCacheDependency
  4. を作成します。キャッシュに日付を設定する
+0

ブレークアウトありがとうございました。 –

関連する問題