Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 缓存无效通知SqlCacheDependency_Asp.net_Sqlcachedependency - Fatal编程技术网

Asp.net 缓存无效通知SqlCacheDependency

Asp.net 缓存无效通知SqlCacheDependency,asp.net,sqlcachedependency,Asp.net,Sqlcachedependency,我正在尝试为我的ASP.NET应用程序(ASP.NET 3.5,SQL 2008)中的一些参考数据创建SQL缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我在web.config中创建了必需的sqlcachedependency条目。我在应用程序启动事件中添加了以下代码 DateTime dt=DateTime.Now SqlCacheDependency dep1 = new SqlCacheDependency(data

我正在尝试为我的ASP.NET应用程序(ASP.NET 3.5,SQL 2008)中的一些参考数据创建SQL缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我在web.config中创建了必需的sqlcachedependency条目。我在应用程序启动事件中添加了以下代码

DateTime dt=DateTime.Now

            SqlCacheDependency dep1 = new SqlCacheDependency(databaseName, "Products");

            List<Product> productsList = new List<Product>();
            CacheItemRemovedCallback productRefresh = new CacheItemRemovedCallback(RefreshProducts);

            HttpRuntime.Cache.Insert("Products", productsList, depProducts, dt, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, productRefresh);
SqlCacheDependency dep1=新的SqlCacheDependency(databaseName,“Products”);
列表产品列表=新列表();
CacheItemRemovedCallback productRefresh=新的CacheItemRemovedCallback(RefreshProducts);
HttpRuntime.Cache.Insert(“Products”,productsList,depProducts,dt,Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,productRefresh);
我在回调函数RefreshProducts中重新加载数据库中的数据

由于某些原因,我无法在更改表中的数据时调用回调函数。我没有得到任何运行时错误,并且可以从AspNet\u sqlcachequeryregisteredtablesstoredprocess中看到该表已启用缓存。我通过用文件依赖项替换sqldependency来测试代码的其余部分。当我更改文件时,回调函数立即被调用,因此我的错误很可能是设置sqlcachedependency


谢谢

错误出现在MS SQL存储过程dbo.AspNet\u SQLCacheRegisterTableStoredProcess和dbo.AspNet\u SQLCacheUnregisterTableStoredProcess中。这些存储过程为SQL缓存监视注册和注销表,但仅适用于默认架构中的表。我的表位于不同的架构中,因此触发器没有正确创建。我修改了这两个存储过程来处理非模式的表,问题就解决了