none
.net EnableTableForNotifications 无效?改变相应数据库后cache依然不消失? RRS feed

  • 问题

  •    如题,我改变了对应数据表的数据但是数据表依赖的cache还是不失效,但是如果在数据查询分析器里手动查询值后,cache就正常失效了,这是为什么啊?怎样让不手动查询cache也会自动失效?下面为tabledependency的相关代码。

    protected TableDependency(string configKey)
            {
                System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(BLL.FunctionRule.GetConnectionString());
                string dbName = ConfigurationManager.AppSettings["CacheDatabaseName"];
                string tableConfig = ConfigurationManager.AppSettings[configKey];
                string[] tables = tableConfig.Split(configurationSeparator);
                System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(BLL.FunctionRule.GetConnectionString(), tables);

                foreach (string tableName in tables)
                    dependency.Add(new SqlCacheDependency(dbName, tableName));
            }

    2009年10月18日 15:36

答案

  • 如果你的 web.config都设置了好了。如果在查询分析器里可以,程序不能执行。很可能是权限设置造成的,请查看数据库连接的帐号和数据库里该帐号所有拥有的权限。作为测试,你可以将权限放大再进行测试
    【孟子E章】
    • 已标记为答案 a013strife 2009年10月21日 1:28
    2009年10月19日 4:58
    版主

全部回复