2015-02-06 70 views
0

使我們有寫入/讀取到數據庫C#LINQ程序。我們最近將數據庫移到了不同​​的服務器上。我改變了app.config指向這個新的服務器,從那時起,當我寫一個表時,我得到了這個錯誤。特別是在db.SubmitChanges()出現錯誤LINQ的錯誤Service Broker消息傳遞未在此數據庫

「Service Broker消息傳遞是不是在這個數據庫中啓用。使用ALTER DATABASE語句啓用Service Broker消息傳遞。」

同樣的程序禁用Service Broker消息傳遞的其他服務器工作正常,這是一個簡單的插入到表中。我試圖插入另一個測試表,並且工作正常。我似乎無法找到錯誤發生的模式。

+0

你得到任何消息,當您嘗試啓用新的數據庫位置服務代理? – 2015-02-06 20:41:44

+0

編號DBA尚未啓用它,因爲它在當前數據庫中不是必需的。它會在完成之前有一段時間! – Satfactor 2015-02-06 20:45:15

回答

0

你大概已經知道,從你格特交換意見這個東西。但是......

有是打開或關閉服務代理機構的數據庫選項。

從母校的數據庫,你可以檢查設置爲您的數據庫(在相同的情況下)什麼

USE master; 

-- Check if it is enabled 
SELECT D.is_broker_enabled 
FROM sys.databases D 
WHERE D.name = 'YourDatabaseName' ; 

-- Enable it 
ALTER DATABASE YourDatabaseName 
    SET ENABLE_BROKER 
    WITH ROLLBACK IMMEDIATE ; 

GO 

我通常將其添加到服務代理應用程序的安裝腳本的開頭

USE master; 

IF NOT EXISTS 
(
    SELECT D.is_broker_enabled 
    FROM sys.databases D 
    WHERE 
    D.name = 'YourDatabaseName' 
    AND D.is_broker_enabled = 1 
) 
    ALTER DATABASE YourDatabaseName 
    SET ENABLE_BROKER 
    WITH ROLLBACK IMMEDIATE ; 

GO 

所以我可以確保它啓用。但是您可能應該與您的DBA交談,因爲服務代理可能會通過啓用它在數據庫引擎中佔用一些資源。