問題タブ [outputcache]
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.
asp.net - ASP.NET と出力キャッシュ - 動作しているかどうかを確認するにはどうすればよいですか?
問題: ASP.NET Web サイトを持っていますが、自分のコードが正しく OutputCached されているとは思えません。IIS7 パフォーマンス カウンターを使用して、1 秒あたりのヒットまたはミスを表示しています。
シンプルな ASP.NET MVC Web サイトがあります。組み込みの ASP.NET Output Cache マジックを使用しています。
ここにいくつかのサンプルコードがあります:-
したがって、これは、各 URL クエリが次のようになることを意味します:-
- http://www.mydomain.com/Foo?name=hello+word&key=1234
- http://www.mydomain.com/Foo?name=hello+word&alpha=1&key=1234
- http://www.mydomain.com/Foo?name=hello+word&alpha=1&beta=2&key=1234
ここで、設定ファイルを参照する OutputCache を取得した方法に注目してください。ここにあります...
難しいことは何もありません...
ここにキッカーがあります!IIS7 パフォーマンス カウンターを使用してこれが発生していることを確認すると、1 秒あたりの出力キャッシュ ミス数が 1 秒あたりの要求の 100% であることがわかります。出力キャッシュ ヒットは 0/秒です。
サードパーティの Web 負荷ストレス テスト プログラムを使用して、サイトにクエリを実行しています。さて、ソースデータは何ですか?名前のリスト。プログラムはすべての名前をループし続け、最初に戻り、すすぎを繰り返します。したがって、同じクエリ文字列を少なくとも 1 回呼び出すことは避けられません。IIS ログ ファイルは、これを確認します。
アルファ版またはベータ版のデータは渡しません。
これは私がヒットしている私のクエリ文字列です....
...「hello+world」をデータ ソース ファイルの名前に置き換え続け、IIS ログでこれを確認します。
だから..私は間違ったパフォーマンスカウンターを見ていますか? 出力キャッシュされているかどうかを確認する他のトリックはありますか? コードは非常に高速であるため、キャッシュされた結果かどうかを判断するのは困難です。
asp.net - ASP.NET がキャッシュされたページで "NullReferenceException" を返す
以下のように content.aspx ページでキャッシュ システムを使用しました。
新しいページがリクエストされると、
NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません
このページを説明する同じ問題
上記のページは ASP.NET 1.1 の問題を説明していますが、私のページは Visual Studio 2008 および ASP.NET 3.5 でコンパイルされます。
注:私は自分のサイトで URL Rewrite API を使用して、mydomain.com/news/123 -> mydomain.com/content.aspx?id=123 を実行しています。
この問題についてあなたの経験を教えてください
編集:ページエラーは
「/」アプリケーションでサーバー エラーが発生しました。オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。] AyandeNews.Main.Page_Load(Object sender, EventArgs e) +629 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e ) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(オブジェクト送信者、EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +99
AyandeNews.PSBaseMasterPage.OnLoad(EventArgs e) +37
System.Web .UI.Control.LoadRecursive() +50
System.Web.UI.Control.LoadRecursive() +141
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.3082; ASP.NET バージョン:2.0.50727.3082
asp.net - asp.net Web アプリケーションで outputcache を事前設定するにはどうすればよいですか?
VaryByParam に基づいて値をキャッシュするために、outputcache ページ ディレクティブを使用しています。ユーザーがページにアクセスするのを待つ代わりに、Web アプリケーションが一連の共通パラメーターに対して起動するときにキャッシュを事前設定する方法はありますか? それとも、キャッシュしたいすべてのページにヒットするスクリプトを書くだけでよいのでしょうか? 理想的には、global.asax application_start のどこかでサーバー側で実行できますか?
c# - ユーザー固有の情報を含む出力キャッシュ ページ
ほとんどが SQL データベース バックエンドを使用してコンテンツ管理されているサイトがいくつかあります。これらのサイトは、ユーザーが投票または更新 (SO と同様) によってコンテンツを変更しない限り、ほとんどの場合、静的な情報を提供します。これらのサイトにはすべて、ユーザー固有の情報が各ページの上部に表示されることが多いマスター ページがあります (これも SO に似ています)。
出力キャッシュを実装して、ユーザー情報以外の前のリクエストから変更されていない時間が 90% の場合に、リクエストごとにデータベースからコンテンツを取得するための db ヒットを防止したいと考えています。これを行う最善の方法は何ですか?コントロールを介した部分的なキャッシュについては明らかに認識していますが、それは各ページのコンテンツをコントロールにすることを意味し、これは望ましくありません。
助言がありますか?SOにはこれを達成するためのキャッシュ戦略があると思います。
asp.net - ascxのプログラムでOutputCacheを削除する方法は?
page1.aspx があります。
と uc1.ascx を使用OutputCache
:
別の page2.aspx のボタンをクリックしOutputCache
て uc1.ascx または page1.aspx を削除するにはどうすればよいですか?
OutputCache が page1.aspx にある場合、次のコードを使用して OutputCache を削除できます。
ただし、OutputCache が uc1.ascx にある場合は機能しません。
asp.net - Outputcache - 期間の最適な値を決定する方法は?
トラフィックの多いサイトの場合 (これもあいまいな用語だと思います)、30 ~ 60 秒が適切な値であることをどこかで読みました。もちろん、負荷テストを行って値を変更することもできましたが、これに関するドキュメントは見つかりませんでした。ほとんどのサンプルは 1 分、数分です。推奨範囲はありません。msdn またはこれについて話している場所はありますか?
asp.net - ASP.NET MVC: OutputCache の問題
私の現在のプロジェクトでは、動的 CSS を生成する必要があります...
だから、私はCSS配信者として機能する部分的なビューを持っています...コントローラーコードは次のようになります:
出力キャッシュ プロファイルは次のようになります。
問題は次のとおりです。OutputCache 行 ([OutputCache(CacheProfile = "DetailsCSS")]) を使用すると、応答のコンテンツ タイプは「text/css」ではなく「text/html」になります。削除すると、それは期待どおりに動作します...
だから、私にとっては、OutputCache が私の「ContentType」設定をここに保存していないようです...これを回避する方法はありますか?
ありがとう
asp.net - InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl が OutputCaching の場合
問題: MyCustomControl から派生したコントロールで OutputCaching を使用できません。コントロールは、Page.LoadControl メソッドでデータベースからの定義を使用して動的にロードされます。
ascx <%@ OutputCache VaryByParam="*" Duration="3600"%> に追加すると、「InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl」例外がスローされます。
動的読み込み制御ロジックが含まれているアセンブリ ウィッチを変更できません。派生コントロールでそれを修正する方法はありますか?
2 番目の質問は、iis7 とネイティブの出力キャッシュに関するものです。この問題は解決しますか? (いくつかのパフォーマンス カウンターを設定しようとしましたが、キャッシュがヒットしていないことがわかりました...)
asp.net-mvc - ASP.NET MVC OutputCacheAttribute: パラメータが設定されている場合はキャッシュしませんか?
次のアクションがあります。
私は[OutputCache]
そのアクションをしたいのですが、次のいずれかが欲しいです:
- 次の場合はキャッシュを使用しません
id == null
。また id == null
ただし、期間が異なる場合はキャッシュを使用します。
私はこれを達成できると思います:
id
ただし、このソリューションは、実際にはオプションである場合に 2 つのアクションを意味するため、コードの繰り返しが発生する可能性があります。もちろん、私は次のようなことをすることができます
しかし、これは醜いようです。
これをどのように実装しますか?
asp.net - ASP.NET 出力キャッシュ - 依存関係を動的に更新
出力キャッシュを必要とする ASP.NET アプリケーションがあります。Web サービスから返されたデータが変更されたときにキャッシュされたアイテムを無効にする必要があるため、単純な期間では十分ではありません。
私はキャッシュの依存関係について少し読んでいて、正しい考えを持っていると思います。Web サービスへのキャッシュ依存関係を作成する必要があるようです。
ページ出力をこの依存関係に関連付けるには、次の方法を使用する必要があると思います。
Response.AddCacheItemDependency(cacheKey);
私が苦労しているのは、キャッシュに何を追加すればよいですか?
私のページの依存関係は、Web サービスによって返される単一の値です。私の現在の考えでは、CacheDependency をサブクラス化してカスタム キャッシュ依存関係を作成し、現在の値をキャッシュに格納する必要があります。次に、Response.AddCacheItemDependency を使用して依存関係を形成します。
その後、値と NotifyDependencyChange を定期的にチェックして、キャッシュされた HTTP 応答を無効にすることができます。
問題は、キャッシュがすぐにフラッシュされるようにする必要があるため、定期的なチェックでは十分ではないということです。HTTP 応答がキャッシュからフェッチされる前に、Web サービスによって返された値を表すキャッシュ内の依存オブジェクトが再評価されるようにするにはどうすればよいですか?
よろしく、コリンE.