3

一起使用 SqlDependency 和 LINQ to SQL 是否有任何影响。还是我们必须特别注意一些事情才能使它们正常工作?

在我们的应用程序中,我们使用 LINQ to SQL 作为 ORM,业务逻辑位于存储过程中。我们缓存 SP 的输出并创建 SQLDependency。每当 SP 的输出更改时,缓存就会失效。

到目前为止,我们的代码在 Dev、Test 和 QA 中运行良好,但最近它在 QA 中停止工作,并且日志表明错误来自 SqlDependency.Start(ConnStr),它在 Application Start 块的 global.asax 文件中执行。

错误如下: 消息:在不提供选项值的情况下使用 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 回答