問題タブ [sqlcachedependency]

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 投票する
2 に答える
1403 参照

asp.net-core - .Net コア SQL キャッシュの依存関係

ASP.Net コア アプリにキャッシュを実装しようとしています。現在、私が実装しているのはメモリ内キャッシュを使用してIMemoryCacheいますが、SQL Server 2016 の対応するレコードが変更された場合、キャッシュが無効になる必要があります。私が見つけた1つの方法ですが、このリンクSQLCacheDependencyのように.Net Coreの一部ではありません

これについて何か考えはありますか?

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

c# - SqlDependency.Start を 2 回連続して呼び出し、2 回目は失敗しましたか?

複数回呼び出す目的は、 に基づいてSqlDependency.Startの新しいインスタンスを作成するなど、他のアクションの前に問題がないことを確認することです。ここhttps://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.start (v=vs.110).aspx(備考セクション)に関するMicrosoftのドキュメントによると、呼び出しのように見えます複数回はまったく問題ありません:SqlCacheDependencyCommandSqlDependency.StartSqlDependency.Start

同一のパラメーター (呼び出しスレッドで同じ接続文字列と Windows 資格情報) を使用した複数の呼び出しは有効です。

しかし、実際には 2 回目の呼び出しで失敗する可能性があり (実際には成功したことはありません)、次の呼び出しのすべての試行がSqlDependency.Start失敗します ( を返すことfalseで、例外はスローされません)。

私がしたことは、最初の制限 (上記のリンクの「備考」セクションに記載) を満たす必要がありました。つまり、すべての呼び出しでSqlDependency.Start同じパラメーターを使用する必要があります (実際には、接続文字列である同じパラメーターが 1 つだけありました)。次のようになります。

そのため、Microsoft が何を述べているか (備考セクションの最初の制限) を理解するのは非常に困難です。2 つの呼び出しはまったく同じです。しかし、2 番目の呼び出しが失敗すると、その後に使用された同じ呼び出しは失敗します (つまり、複数回呼び出しを試みた場合、正常に開始する機会はありません)。

Sql Server のログを見ると、「リモート サービスが見つかりません ... 存在しないため」のようなメッセージがたくさんあることがわかります。

この問題の解決策や回避策は必要ありません。Microsoft が述べたように期待どおりに動作しない理由について説明が必要なだけですか、または Microsoft が述べたことを誤解していますか?