0

既存の MVC2 プロジェクトがあり、最初にMVC3 に到達するためのこれらの手順に従って MVC4 にアップグレードし、次に MVC4 に到達するためのこれらの手順に従います。

出力キャッシュは、MVC2 プロジェクトで長い間正常に機能していましたが、MVC4 バージョン以降は機能しません。

キャッシングをテストするための簡単なコントローラーを追加しました。

 public class TestController : Controller
 {
    [OutputCache(Duration = 600, VaryByParam = "*")]
    public ActionResult CacheTest()
    {
        return Content(DateTime.Now.ToLongTimeString());
    }
 }

このページを更新するたびに、ブラウザに出力される時間が変わります。

この同じソリューションで新しい MVC3 プロジェクトを作成し、MVC4 にアップグレードしてから、この同じコードをコピーすると、期待どおりに機能します。

したがって、既存のコードまたは構成のどこかに、出力キャッシュを壊している何かがあるに違いありません。

また、何かが問題を引き起こしていると考えて、web.configファイルから大量のものを削除しようとしました-運が悪い.

これを修正またはデバッグする方法に関する提案はありますか?

アップデート:

上記の CacheTest アクションを任意のビューでレンダリングすると、キャッシュされた結果が表示されます。つまり、更新のたびに日付は変わりません。

<% Html.RenderAction("CacheTest", "Test"); %>

なぜそれが機能するのに、ブラウザからのアクション URL がキャッシュされないのですか?

4

1 に答える 1

0

これはサードパーティのライブラリの問題であることが判明しました-51Degrees。これは、このライブラリの最近のバージョンに導入された問題でした。MVC2からMVC4に変換する過程で、以前使用していたバージョンよりも数バージョン遅れたnugetパッケージをインストールしました。

誤警報-ASP.NETMVCのアップグレードやASP.NETに関連するものとは何の関係もありません。

于 2012-08-11T03:39:17.603 に答える