[英]SQL Dependency on SQL Server 2008 Express
我有一個成功地將 SqlDependency 與 SQL Server 2008 Standard Edition 一起使用的應用程序。 但是,如果我將連接字符串切換到 SQL Server 2008 express(啟用了 Broker),它就會停止工作。
我不確定它是否特定於 SQL Server Express,但是我應該遵循哪些步驟來找出問題的原因?
更新。 “停止工作”是指 SqlDependency 不會引發通知
要了解 SQL Dependency 的工作原理,我建議您閱讀The Mysterious Notification 。 要對其進行故障排除,請按照正常的故障排除對話框步驟操作。 正如您在這篇文章中發現的那樣,典型的罪魁禍首確實是 Service Broker 消息傳遞所需的EXECUTE AS
上下文。 您可以從sys.transmission_queue
通知消息的transmission_status
輕松看到這sys.transmission_queue
,並將數據庫所有者更改為有效登錄名( ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa]
)將修復它。 但是,可能還有其他問題。 我鏈接中的故障排除步驟將幫助您找到它們。
正如@Remus 指出的那樣,我基於誤導性文檔的假設是錯誤的:SQL Server Express 在某種程度上確實支持 Service Broker,盡管許多在線資源表明它並不完全支持 SSB。 把它放在這里,這樣搜索可能會產生隨后的對話。
似乎 SqlDependency 依賴於查詢通知。
查詢通知又依賴於 Service Broker。
SQL Server Express 不支持 Service Broker。
此頁面未明確列出查詢通知:
http://msdn.microsoft.com/en-us/library/cc645993(SQL.100).aspx
但是從那里你可以看到 Express 僅作為
客戶端支持 Service Broker,從下一頁你可以看到 Service Broker 是一個依賴項(沒有雙關語):
http://msdn.microsoft.com/en-us/library/ms130764(v=SQL.100).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.