2010-07-21 118 views
3

是否有將SqlDependency和LINQ一起使用到SQL中的任何含義。或者我們必須專門照顧一些事情,以使它們正常工作?LINQ to SQL和SqlDependency

在我們的應用程序中,我們使用LINQ to SQL作爲ORM,業務邏輯位於存儲過程中。我們緩存SP的輸出並創建SQLDependency。只要SP的輸出發生變化,緩存就會失效。

我們的代碼到目前爲止在Dev,Test和QA中工作正常,但最近它停止在QA中工作,並且日誌表明錯誤來自SqlDependency.Start(ConnStr),它在應用程序中的global.asax文件中執行開始塊。

錯誤如下: 消息:當使用SqlDependency時未提供選項值時,必須在執行添加到SqlDependency實例的命令之前調用SqlDependency.Start()。

但我不明白,當SqlDependency.Start()已經在應用程序中執行啓動它爲什麼會執行SPs後拋出異常。

任何人都可以對這個問題有所瞭解嗎?

回答

2

由於SQLDependency是權限相關的 - 服務器上的權限是否更改?

(他們可能不應該有 - 但他們可能!)

+0

請您詳細說明一下權限的部分,這將會非常有幫助,謝謝您的回覆。 – 2010-07-21 07:42:48

+0

一般情況下,將其設置在這裏描述:http://msdn.microsoft.com/en-us/library/a52dhwx7(VS.80).aspx 或請參閱「所需的數據庫權限」中 部分HTTP:/ /blogs.msdn.com/b/dataaccess/archive/2005/09/27/474447.aspx – Tobiasopdenbrouw 2010-07-21 08:43:49

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] 
+0

什麼是testuser?用戶或數據庫 – 2012-08-06 13:27:58

+0

這是需要權限和所有其他屬性的用戶。 – apprich 2012-10-10 08:35:21