【问题标题】:SQLCacheDependency not working in Load balanced environment with sql server 2008SQLCacheDependency 在使用 sql server 2008 的负载平衡环境中不起作用
【发布时间】:2014-08-20 18:29:06
【问题描述】:

我们已经在我们的应用程序中实现了 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 profiler 时,我们看到订阅正在数据库中注册。但是当对表进行更新时,来自 sql 代理的通知并没有在应用程序中返回。我们在分析器中看到以下错误

**找不到远程服务'SqlQueryNotificationService- ab49a23a-9beb-4a6f-a8b0-299bcfddbeda' 因为它没有 存在。 和

此消息已被删除,因为无法使用 TO 服务 成立。服务名称:“SqlQueryNotificationService-58237ce1- aa4d-4999-9fd8-d0b78c1d932b”。消息来源:“本地”。**

对此的任何帮助都将非常感激。

【问题讨论】:

  • 您并没有耗尽数据阅读器(实际上是丢弃它)。也许这会阻止完全设置依赖项。

标签: c# asp.net-mvc sql-server-2008


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2011-06-22
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2015-08-07
    • 2012-12-19
    • 1970-01-01
    • 2018-11-22
    相关资源
    最近更新 更多