標準の ASP.Net Web アプリケーション プロジェクト アプリケーションで、MVC を使用せずに System.Web.Routing からのルーティングを使用しています。これは主に、開発中のポータルでより適切な URL を取得するために行われます (~/default.aspx?contentid=123 の代わりに ~/{contentsubject} があります)。ポータルは承認されておらず、すべての情報は URL にあるため、キャッシュに保存されます。完全なページをキャッシュできるシナリオ。
出力キャッシュを有効にしようとしたときに、キャッシュが行われていないことに気付きました。outputcache page ディレクティブは完全に無視されているようです。これは本当ですか、それとも何か不足していますか? これは修正できますか?
マスター ページとユーザー コントロールを使用する Webform1.aspx ページだけを含む小さなテスト アプリを作成しました ( http://www.4shared.com/file/196605919/31903b07/OutputCacheTest.htmlにアップロードしました)。 . 3 つすべてが現在の日付と時刻を出力します。
http://localhost/OutputcacheTest/Webform1.aspx をリクエストすると、10 秒のキャッシュが期待どおりに機能します。つまり、表示される時間は 10 秒ごとに更新されます。
このアプリは、すべての要求をキャッチし、同じ Webform1.aspx をハンドラーとして返すワイルドカード ルートも定義します。そのため、http//localhost/OutputcacheTest/myroute をリクエストすると、同じページが実行されますが、現在はキャッシュが機能しません。つまり、すべてのリクエストで現在の時刻が表示されます。
注: 組み込みの開発用 Web サーバーを使用すると、両方のシナリオが機能しますが、IIS だけがこの問題を抱えているようです。
このシナリオで出力キャッシュを有効にする方法について、誰かが解決策や回避策を持っていますか?