此数据库中未启用Linq错误服务代理邮件传递

时间:2015-02-06 20:17:05

标签: c# sql linq

我们有C#LINQ程序,可以写入/读取数据库。我们最近将数据库移动到了另一台服务器。我更改了app.config以指向这​​个新服务器,从那时起,当我写一个表时,我收到此错误。特别是在db.SubmitChanges()

上发生错误

“此数据库中未启用Service Broker消息传递。请使用ALTER DATABASE语句启用Service Broker消息传递。”

在禁用Service Broker消息传递的其他服务器中,相同的程序可以正常工作,这是对表的简单插入。我尝试插入另一个测试表,这很好。我似乎无法找到错误何时发生的模式。

1 个答案:

答案 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交谈,因为服务代理可能只是通过启用它来占用数据库引擎中的某些资源。