我正在集成SqlCacheDependency以在我的LinqToSQL脚本中使用。
我正在使用一个扩展类,用于在这里找到的Linq查询-http://code.msdn.microsoft.com/linqtosqlcache
我把代码连接起来,当我打开页面时,我得到了这个异常-
未启用当前数据库的SQL Server Service Broker,因此不支持查询通知。如果要使用通知,请为此数据库启用Service Broker。
它来自全球的这一事件。asax
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
//In Application Start Event
System.Data.SqlClient.SqlDependency.Start(new dataContextDataContext().Connection.ConnectionString);
}
字符串
我的问题是
1.如何在SQL Server 2008数据库中启用Service Broker?我已尝试运行此查询.. ALTER DATABASE tablename SET ENABLE_BROKER,但它永远不会结束并永远运行,我必须手动停止它。
1.一旦我在SQL Server 2008中设置了这个设置,它会过滤到我的DataContext吗?或者我也需要在那里配置一些东西吗?
谢谢你的帮助
特吕吉利
7条答案
按热度按时间q35jwt9p1#
如果其他人正在寻找解决这个问题的方法,下面的命令对我来说很有效。它释放了所有其他到数据库的连接,而不是等待。
字符串
nwnhqdif2#
在SQL Server 2012中,您可以转到
Properties-> Options -> Service Broker
的数据
q7solyqu3#
这里是如何做到这一点,如果你是禁用或您需要恢复备份,这似乎禁用它.
只要运行这个脚本,它将杀死所有进程的数据库正在使用(为什么你在2008年手工杀死进程的不像2005年是超越我),然后设置代理
字符串
monwx1rj4#
必须删除到DB的所有连接,并使用具有权限的用户帐户来启用代理服务。
以下是理想的(替换
databasename
):字符串
另外,我建议创建一个新的角色和具有适当权限的用户帐户(替换数据库登录):
型
wvt8vs2t5#
我们可以通过ALTER DATABASE语句和数据库属性>选项> Service Broker > Broker Enable:True/False启用Broker服务。
但这里的问题,而启用代理:进程正在运行与特定的数据库,我们必须杀死那些,只有在此之后,我们才能启用代理服务.回答**@JGilmartin**将完美的工作,但要确保它会杀死所有正在进行的进程的数据库,在生产上使用此脚本之前,请检查流量或进程的严重性.
4c8rllxm6#
1.要修复此问题,请使用SSMS启用Service broker,图2
1.在设置为true之后,Service Broker错误现在应该消失了,请参见我的图3
lnxxn5zx7#
如果代理已经启用,请尝试以下操作:
字符串