我们有C#LINQ程序,可以写入/读取数据库。我们最近将数据库移动到了另一台服务器。我更改了app.config以指向这个新服务器,从那时起,当我写一个表时,我收到此错误。特别是在db.SubmitChanges()
上发生错误“此数据库中未启用Service Broker消息传递。请使用ALTER DATABASE语句启用Service Broker消息传递。”
在禁用Service Broker消息传递的其他服务器中,相同的程序可以正常工作,这是对表的简单插入。我尝试插入另一个测试表,这很好。我似乎无法找到错误何时发生的模式。
答案 0 :(得分:0)
您可能已经从与Gert交换的评论中了解了这些内容。但...
有一个数据库选项可以打开或关闭服务代理机制。
从mater数据库,您可以检查数据库中的设置(在同一实例中)
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交谈,因为服务代理可能只是通过启用它来占用数据库引擎中的某些资源。