3

SqlDependency と LINQ to SQL を一緒に使用することの影響はありますか。それとも、適切に機能させるために特別な注意を払う必要がありますか?

私たちのアプリケーションでは、ORM として LINQ to SQL を使用しており、ビジネス ロジックはストアド プロシージャにあります。SP の出力をキャッシュし、SQLDependency を作成します。SP の出力が変更されるたびに、キャッシュが無効になります。

これまでのコードは、開発、テスト、および QA では正常に動作していましたが、最近 QA で動作しなくなり、ログは、Application Start ブロックの global.asax ファイルで実行される SqlDependency.Start(ConnStr) からエラーが発生していることを示唆しています。

エラーは次のとおりです。 メッセージ : オプション値を指定せずに SqlDependency を使用する場合、SqlDependency インスタンスに追加されたコマンドを実行する前に、SqlDependency.Start() を呼び出す必要があります。

しかし、SqlDependency.Start() が Application Start で既に実行されている場合、SP が実行されたときに後で例外がスローされる理由がわかりません。

誰でもこの問題に光を当てることができますか?

4

2 に答える 2

2

SQLDependencyは権限に依存しているため、サーバーで権限が変更されましたか?

(彼らはおそらく持っているべきではありません-しかし彼らはそうするかもしれません!)

于 2010-07-21T07:34:58.433 に答える
1

すべての権限が適切に設定されていることを確認してください。動作させるために適用した必要なすべての権限のリストの下にあります。

-- Permissions  
GRANT CREATE PROCEDURE to [testUser] 
GRANT CREATE QUEUE to [testUser] 
GRANT CREATE SERVICE to [testUser] 
----

GRANT REFERENCES on CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]
  to  [testUser]

GRANT RECEIVE ON QueryNotificationErrorsQueue TO  [testUser]
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [testUser]


GRANT CONTROL ON SCHEMA::[dbo] TO [testUser]
GRANT IMPERSONATE ON USER::DBO TO [testUser]
于 2012-04-30T17:57:03.727 に答える