1

Web サイトの一種のグローバル設定を作成し、このデータをデータベースに保存しようとしていますが、これらの設定はリクエストごとに読み取る必要があるため、あまり効率的ではない可能性があると考えています。

「ページごとに表示するレコード数」などの設定の種類、有効化/無効化、これをデータベースに保存する予定ですが、特に設定を取得するためにリクエストごとにデータベースを呼び出さなければならないというオーバーヘッドは望ましくありません変わらないとき。確かにこれはCMSで常に行われていますが、どのように行うべきだと思いますか. 私は SqlCacheDependency を考えていますが、それを設定したことはありません。別の方法はありますか?

また、これらの設定を web.config に保存して GUI を作成することもできます。問題は、サイトの管理が独自の名前空間で実行され、独自の web.config があることです。アプリケーションの名前空間の外で web.config を操作することができます。

みんなありがとう。

4

2 に答える 2

1

DB から値を読み取り、Application_Startこれらの値を に保存することをお勧めしますApplication object。これにより、DB にアクセスして毎回値を読み取る必要がなくなります。アプリケーションの起動時に一度だけ値を読み取って保存します。

void Application_Start(object sender, EventArgs e)
{
  Application["name"] = ""; Value from DB
  ......................
  ......................
}

注:で値を操作することはお勧めしませんweb.config using UI。ユーザーが UI から値を変更しようとすると、 の値が変更されweb.config、すべてのユーザー セッションが になるためterminatedです。

別の注意:情報を変更して DB を更新するたびに、アプリケーション レベル オブジェクトも更新する必要があります。

于 2011-05-30T10:38:43.110 に答える
0

まず、データベース呼び出しが実際にパフォーマンスを低下させていることに気付くまで、データベース呼び出しのカウントについて心配することはありません。最新のデータベースは、特にスカラー値の適切に設計されたクエリの場合は高速です。多くの人気のあるパッケージは、リクエストごとに構成を読み取り、かなりうまくスケーリングするようです。

これらの値の更新に関しては、適切なアクセス許可を持っていると仮定して、別のアプリから web.config ファイルを簡単に更新できます。これには、ほとんどのホスティング シナリオを除外する完全な信頼が必要です。覚えておくべきことは、VS はファイルを特別に扱いますが、それは単なる XML ファイルであるため、XML ファイルを更新するための通常のトリックが適用されるということです。これは別のアプリケーションから実行しているため、機能します。しかし、ユーザー セッションのダンプに関するムハンマドの警告は、更新の「犠牲者」に適用されます。変更内容によっては、どちらでもかまいません。

于 2011-05-30T10:54:43.397 に答える