sql server 2008负载均衡环境下,sqlachedependency不工作

本文关键字:sqlachedependency 工作 环境 server 2008 负载 sql | 更新日期: 2023-09-27 18:18:42

我们已经在我们的应用程序中实现了sqlcachedependency。根据一个数据库表,我们有多个缓存,并使用sql监视器设置sql缓存策略,如下所示。

        policy = new CacheItemPolicy();
        //connection string name
        var connectionString = connectionstring;
        //SQlDependency Cache
        SqlDependency.Start(connectionString);
        SqlChangeMonitor monitor = null;
        using (var connection = new SqlConnection(connectionString))
        {
            using (var command = new SqlCommand("SELECT col1,col2 FROM dbo.table1", connection))
            {
                var dependency = new SqlDependency(command);
                connection.Open();
                command.ExecuteReader();
                monitor = new SqlChangeMonitor(dependency);
            }
        }
        policy.ChangeMonitors.Add(CreateMonitor());

此方法在添加多个缓存时调用。当我们检查开发机器时,一切正常。但是,一旦我们将应用程序上传到负载平衡的QA机器(QA1,QA2,QA3),它就不能工作了。

所有的授权权限和sql代理启用都是在数据库上完成的。

当我们检查sql分析器时,我们看到订阅正在数据库中注册。但是,当对表进行更新时,来自sql代理的通知不会在应用程序中返回。我们在profiler

中看到以下错误

**无法找到远程服务'SqlQueryNotificationService-ab49a23a - 9 - beb 4 - a6f a8b0 - 299 bcfddbeda'因为事实并非如此存在。和

此消息已被丢弃,因为TO服务无法发现。服务名称:"SqlQueryNotificationService-58237ce1-"aa4d - 4999 - 9 - fd8 d0b78c1d932b"。消息来源:"Local".**

sql server 2008负载均衡环境下,sqlachedependency不工作

终于找到了答案。基本上是许可问题。下面的链接帮助我授予权限,解决了这个问题

http://social.msdn.microsoft.com/forums/sqlserver/en us/bd195da8 - 93 - b2 - 43 - c6 - 8 f59 - 674 f5fb9d618/cannot -发现- - - -队列sqlquerynotificationserviceguid?forum=sqlservicebroker

相关文章:
  • 没有找到相关文章