1

私たちのアプリケーションは、多くの共有コンポーネントを使用しています。たとえば、未メールの電子メールを処理する Windows サービスなど、キャッシュが不要なものもあります。その結果セットをキャッシュすることはありません...

問題は、共有データ層が SqlCacheDependency を使用するように変更されているため、データ層が SqlCacheDependency オブジェクトを要求するデータベース呼び出しで SqlDependency を開始しないサービスが失敗することです。

これは疑問につながります - ブローカ サービスがリッスンしているかどうか (つまり、SqlDependency.Start(connectionString) が呼び出されているかどうか) を確認するためにデータ クラスをテストする方法はありますか?

SqlDependency オブジェクト自体には、Enabled または同様のプロパティはありません。データ層が状態を判断するために SqlCaching が使用されていることを、呼び出し元のアプリに強制的にデータ層に伝える以外に方法はありますか?

4

3 に答える 3

2

ほとんど答えはノーです。false または存在しない場合、リクエストが SqlCacheDependency を使用してスキップされるようにする構成変数を追加することになりました。

于 2012-02-02T21:44:19.713 に答える
1

SELECT * FROM sys.service_queues WHERE name LIKE 'SqlQueryNotificationService-%'

「SqlQueryNotificationService-[いくつかの GUID]」を返します

また、IDE でのデバッグ中に SqlDependency _serverUserHash の非パブリック メンバーを詳しく調べると、同じエントリを含むコレクションが見つかります。マイクロソフトがそれを公開するほど親切であるなら、そうです。

于 2013-05-24T20:49:05.410 に答える