現在のプロジェクトでsqldependency.start(ConnectionString)が呼び出されたかどうかを確認しますか?
-
12-11-2019 - |
質問
私たちのアプリケーションは多くの共有コンポーネントを使用します。それらのいくつかは、例えば、イメージが解決されない電子メールを処理するWindowsサービスなど、キャッシュを必要としません。その結果セットをキャッシュすることは決してないだろう...
問題は、共有データ層がSQLCacheDependenceを使用するように変更されているため、データ層がSQLCacheDependencyオブジェクトを要求するデータベース呼び出しに対してSQLDependencyを起動しないサービスは失敗します。 質問につながる
- データクラスがブローカーサービスがリスニングされているかどうかを確認する方法はあります(つまり、SQLEPENDENCY.Start(ConnectionString)と呼ばれています)?
SQLEpendencyオブジェクト自体には有効または同様のプロパティはありません。SQLCACHingがデータ層に使用されているデータレイヤが状態を決定するためにSQLCACHingが使用中のデータレイヤを tell に強制するのに短い方法はありますか?
解決
かなり答えはいいえです。FALSEまたは存在しない場合は、Config変数を追加しました。
他のヒント
sys.service_queues from name'sqlQueryNotificationService - % 'のような名前
「SqlQueryNotificationService- [いくつかのGUID] 'を返します。
そしてIDEのデバッグ中にSQLdependency _serverUserHashの非公開メンバーを深く見れば、同じエントリを含むコレクションがあります。Microsoftがそれを公開するように非常に親切になる場合は、はい。
私の場合私はいくつかのWebアプリケーションによって使用されるクラスライブラリを持っています。だから私はapp.configを持っていません。静的イベントでSQLCacheDependencyを使用します。だから私は静的なブール値を使っています:
if (!isCachingEnabled)
isCachingEnabled = SqlDependency.Start(builder.ProviderConnectionString);
.
これまでの働いていますが、私はクラスライブラリを使用するときに提案を開く。