LINQ to SQL 和 SqlDependency

3
使用SqlDependency和LINQ to SQL有什么影响吗?或者我们需要特别注意一些事情来使它们正常工作吗?
在我们的应用程序中,我们使用LINQ to SQL作为ORM,业务逻辑在存储过程中。我们缓存SPs的输出并创建SQLDependency。每当SPs的输出更改时,缓存就会失效。
到目前为止,我们的代码在Dev、Test和QA中都运行良好,但最近在QA中停止工作,日志表明错误来自于在Application Start块中执行的SqlDependency.Start(ConnStr)。
错误如下: Message : When using SqlDependency without providing an options value, SqlDependency.Start() must be called prior to execution of a command added to the SqlDependency instance.
但我不明白,既然SqlDependency.Start()已经在Application Start中执行了,为什么在执行SPs之后会抛出异常。
有人能解决这个问题吗?
2个回答

2
作为SQLDependency的依赖项,服务器上的权限是否有变化?
(它们可能不应该有变化 - 但是它们可能有!)

你能否详细说明一下权限部分,这将非常有帮助,感谢您的回复。 - Rishabh Ohri
通常,设置过程在此处描述:http://msdn.microsoft.com/en-us/library/a52dhwx7(VS.80).aspx或者请参阅http://blogs.msdn.com/b/dataaccess/archive/2005/09/27/474447.aspx中的“所需数据库权限”部分。 - Tobiasopdenbrouw

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]

这是什么测试用户?是用户还是数据库? - Kishore Kumar
那是需要权限和所有其他属性的用户。 - apprich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接