問題タブ [donut-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
154 参照

asp.net-mvc - DonutOutputCache が画像に対して機能しない

次のような ASP.NET MVC コントローラー アクションがあります。

構成ファイルは次のようになります。

レンダリングに使用した画像をブラウザに追加DonutOutputCacheすると、ロードされなくなりました。Fiddler トレースで、大きなバイナリ ファイルがブラウザーに到達していることを確認できますが、レンダリングできないようです。

を削除するDonutOutputCacheと、画像が再び表示されます。

キャッシュなどをクリアしてみました。何かアイデアはありますか?

0 投票する
2 に答える
2550 参照

c# - mvcdonutcaching ASP.NET MVC を使用したドーナツ キャッシング _Layout

私の ASP.NET MVC プロジェクトでは、共有ファイルのナビゲーション メニューにログイン サブメニューがあり_Layout.cshtml、ユーザーがログインしている場合はユーザー情報を表示し、ログインしていない場合はサインアップ/ログイン オプションを表示します。ログイン サブメニューは、次の名前の共有フォルダーの部分ビューです_LoginPartial

さまざまなコントローラーのいくつかのアクションを大量にキャッシュしていますが、明らかな理由から、キャッシュされない_Layoutようにドーナツキャッシュを実装したいと考えています。これを達成するためにmvcdonutcachingライブラリを_LoginPartial使用しています (この回答で推奨されています)。これは、追加のプロパティを持ついくつかのオーバーロードを提供します。@Html.Actionbool excludeFromParentCache

そのため、次を返すアクションでを作成LayoutControllerしました。UserAuth_LoginPartial

..そして、表示し_Layoutたいファイルで、mvcdonutcachingオーバーロードを次のよう_LoginPartialに呼び出します。Html.Action

これをテストするために、 のアクションにOutputCache長時間の を設定しましたが、次の手順に従うと:IndexFAQController

  • ログインする
  • /faq に移動します
  • ログアウト
  • /faq に移動します

/faq はまだログインしていると表示されます。

ここで何が欠けていますか?これは、実際の HTML での mvcdonutcaching の出力です。

更新:代わり_LoginPartialにのビューにある部分ビューにメニューを移動しようとしました-問題は解決しません。LayoutController

0 投票する
1 に答える
1852 参照

c# - MVCDonutCaching - 子アクション キャッシュを削除する方法 MVC Donut Caching

このMVCDonutCaching Nuget パッケージを使用しているのは、チュートリアルで、これは子アクションで可能であると述べているためです。

この質問がうまくいかなかったか、正しく理解できませんでした。

標準属性で子キャッシュを削除する方法を誰かが知っていればOutputCache、それも問題ありません。

これを探しましたが、見つかりません。ここに例を見てください:

HomeController (ホームページ) の Index アクション:

NewsController の ChildAction:

HomeController のインデックス ビュー:

キャッシュをクリアするために、子アクションによって保存されたデータを更新するコントローラーとアクションを含む管理領域をアプリケーションに用意しました。そのため、ニュース記事が更新されたとき。ホームページのキャッシュが更新されるはずです。

そのアクションには、次のコードがあります。

複数のバージョンを試しましたが、うまくいきませんでした。誰でも私を助けることができますか?

0 投票する
0 に答える
132 参照

asp.net-mvc - ユーザーがフォーム認証で管理者としてログインしている場合、ドーナツのキャッシュを回避しますか?

ユーザーが管理者グループのフォーム認証でログインしている場合、キャッシュを回避したいと考えています。

キャッシュ属性をオーバーライドし、コントローラー レベルで適用しました。ただし、メソッド NonAdmin は validationcallback 経由では呼び出されません!

ユーザーがログインしているときに非キャッシュを実現するにはどうすればよいですか?

0 投票する
2 に答える
610 参照

c# - Mvc Donut Caching プログラムでキャッシュを無効にする

私は自分のプロジェクトでMvcDonutCachingを使用しており、デバッグ/テスト中に支援するためにキャッシュをグローバルに無効にする方法を探しています。

ドキュメントでこれを達成する方法の例を見つけることができませんが、プロパティCacheSettingsManagerを公開する を見つけましたが、これは.IsCachingEnabledGloballyreadonly

このCacheSettingsManager設定を構成できるコンストラクターもありません。この設定を構成する方法はありますか?

うまくいくかもしれない(醜い)別の解決策がありますが、それは絶対的な最後の手段であり、実際には必要ではありません。

そして、これを私のコントローラーアクションで使用します:

これを行う正しい方法はありますか?

0 投票する
1 に答える
926 参照

c# - c# mvc と Varnish でドーナツ キャッシングを行うには?

ワニス構成に追加しました

}

私のmvcアプリケーションでは、childactionがあります

Requestヘッダーを追加しました

しかし、Varnish はページ全体をキャッシュし続けます。

何が恋しいですか?ブラウザでリクエスト ヘッダー X-Esi が存在しないことに気付きました。また、ワニスはタグを適切に削除します<esi:include

アクション GetHour のコードは非常に単純で、SQL Server から 10 進数を取得するだけです。

0 投票する
1 に答える
278 参照

c# - Azure の Web アプリで d:\ ドライブが使用できない原因は何ですか?

ブルー ムーンになると、キャッシュを初期化するときに Azure Web アプリから例外が発生します。

エラーメッセージは次のように述べていFailed to start monitoring changes to 'D:\home\site'ます。再デプロイにより問題が解決しました。MvcDonutCachingを使用していますが、それが関連しているかどうかはわかりません。

誰かが同様の問題を抱えていましたか?おそらくこれを解決する方法についての提案はありますか?

System.Web.HttpException (0x80070035): 'D:\home\site' への変更の監視を開始できませんでした。System.Web.FileChangesMonitor.FindDirectoryMonitor (文字列ディレクトリ、ブール値 addIfNotFound、ブール値 throwOnError) で System.Web.FileChangesMonitor.StartMonitoringPath (文字列エイリアス、FileChangeEventHandler コールバック、FileAttributesData& fad) で System.Web.Caching.CacheDependency.Init (ブール値 isPublic、 String[] filenamesArg、String[] cachekeysArg、CacheDependency 依存関係、DateTime utcStart) System.Web.Caching.CacheDependency..ctor(String filename, DateTime start) at System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(String virtualPath, Boolean isFile) ) System.Collections.Concurrent.ConcurrentDictionary で2.GetOrAdd(TKey key, Func2 valueFactory) を System.Web.Mvc.BuildManagerViewEngine.FileExists(ControllerContext controllerContext, String virtualPath) で System.Web.WebPages.DefaultDisplayMode.GetDisplayInfo(HttpContextBase httpContext, String virtualPath, Func 2 virtualPathExists) at System.Web.WebPages.DisplayModeProvider.GetDisplayInfoForVirtualPath(String virtualPath, HttpContextBase httpContext, Func2 virtualPathExists, IDisplayMode currentDisplayMode, Boolean requireConsistentDisplayMode) で System. Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName(ControllerContext controllerContext, List1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) at System.Web.Mvc.VirtualPathProviderViewEngine.FindView(ControllerContext controllerContext, String viewName, String masterName, Boolean useCache) at System.Web.Mvc.ViewEngineCollection.<>c__DisplayClass6.<FindView>b__5(IViewEngine e) at System.Web.Mvc.ViewEngineCollection.Find(FuncSystem.Web.Mvc.ViewResultBase.ExecuteResult での System.Web.Mvc.ViewResult.FindView(ControllerContext context) での System.Web.Mvc.ViewEngineCollection.FindView(ControllerContext controllerContext, String viewName, String masterName) での 2 ルックアップ、ブール値 trackSearchedPaths) (ControllerContext コンテキスト) System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) で System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) で System.Web.Mvc.Controller.b__1d (IAsyncResult asyncResult、ExecuteCoreState innerState) System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid で1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) で System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) で System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) で System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid `1.CallEndDelegate(IAsyncResult asyncResult) で System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) で System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() で System.Web.HttpApplication.ExecuteStep (IExecutionStep ステップ、ブール値および完了同期)