2

SQL Server 2008StandardEditionでSqlDependencyを正常に使用するアプリケーションがあります。しかし、接続文字列をSQL Server 2008 Express(ブローカーが有効になっている)に切り替えると、機能しなくなります。

SQL Server Express固有かどうかはわかりませんが、問題の原因を見つけるためにどの手順に従う必要がありますか?

アップデート。「動作を停止する」とは、SqlDependencyによって通知が発生しないことを意味します

4

2 に答える 2

5

SQL依存関係がどのように機能するかを理解するには、TheMysteriousNotificationを読むことをお勧めしますトラブルシューティングするには、通常のトラブルシューティングダイアログの手順に従います。確かに、典型的な原因は、あなたが見つけた記事のように、EXECUTE ASServiceBrokerメッセージ配信に必要なコンテキストです。transmission_statusの通知メッセージからこれを簡単に確認できsys.transmission_queue、データベース所有者を有効なログイン(ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa])に変更すると修正されます。ただし、他の問題がある可能性があります。私のリンクのトラブルシューティング手順は、それらを見つけるのに役立ちます。

于 2011-08-05T17:01:17.557 に答える
3

@Remusが指摘しているように、誤解を招くドキュメントに基づく私の仮定は間違っていました。SQLServer Expressは、SSBをすべてサポートしていないと述べている多くのオンラインソースにもかかわらず、ある程度ServiceBrokerをサポートしています。ただし、これをここに残しておくと、検索によって結果のダイアログが表示される可能性があります。

SqlDependencyはクエリ通知に依存しているようです。クエリ通知は、ServiceBrokerに依存します。Service Brokerは、SQLServerExpressではサポートされていません。このページには、クエリ通知が明示的にリストされていません。

http://msdn.microsoft.com/en-us/library/cc645993(SQL.100).aspx

しかし、そこから、Service BrokerがクライアントとしてのみExpressでサポートされていることがわかります。次のページから、Service Brokerが依存関係であることがわかります(しゃれは意図されていません)。

http://msdn.microsoft.com/en-us/library/ms130764(v=SQL.100).aspx

于 2011-08-05T12:26:04.667 に答える