1. 程式人生 > >在Windows Server 2008 R2 Server中,連接其他服務器的數據庫遇到“未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker ”

在Windows Server 2008 R2 Server中,連接其他服務器的數據庫遇到“未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker ”

lba pos 數據庫名 nbsp bsp enable 輸入 images logs

項目代碼和數據庫部署在不同的Windows Server 2008 R2 Server中,錯誤日誌顯示如下:

"未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker。"

SQL Server Service Broker介紹:

SQL Server Service Broker 為消息和隊列應用程序提供 SQL Server 數據庫引擎本機支持。這使開發人員可以輕松地創建使用數據庫引擎組件在完全不同的數據庫之間進行通信的復雜應用程序。開發人員可以使用 Service Broker 輕松生成可靠的分布式應用程序。使用 Service Broker 的應用程序開發人員無需編寫復雜的內部通信和消息,即可跨多個數據庫分發數據工作負荷。因為 Service Broker 會處理會話上下文中的通信路徑,所以這就減少了開發和測試工作。同時還提高了性能。例如,支持網站的前端數據庫可以記錄信息並將進程密集型任務發送到後端數據庫以進行排隊。Service Broker 確保在事務上下文中管理所有任務以確保可靠性和技術一致性。

解決方案:

1、在數據庫新建查詢,輸入:

SELECT is_broker_enabled FROM sys.databases WHERE name = ‘MyDB‘ --‘MyDB’即我的數據庫名字

查詢結果:

技術分享圖片

需要把值設為1

2、再執行下面的語句:

ALTER DATABASE MyDB SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE MyDB SET ENABLE_BROKER;

查詢結果如下:

技術分享圖片

這時再運行程序,就不會這個錯誤了。

註:這裏僅是記錄解決問題的過程。

在Windows Server 2008 R2 Server中,連接其他服務器的數據庫遇到“未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker ”