我们的应用程序使用很多共享组件。其中一些不需要缓存,例如,处理未浏览电子邮件的Windows服务。您永远不会缓存该结果集...

问题是,由于我们的共享数据层已被修改为使用SQLCacheDependency,因此我们在数据层请求SQLCacheDependency对象的数据库调用中失败的服务失败。

导致问题 - 有没有办法为我们的数据类进行测试,以查看代理服务是否正在侦听(即:具有sqldependency.start(ConnectionString)已被调用)?

sqldependency对象本身没有启用或类似的属性。是否有任何方式迫使呼叫应用程序到告诉 SQLCACHING用于数据层以确定状态的数据层?

有帮助吗?

解决方案

几乎答案是没有。我们最终添加了一个Config变量,如果存在虚假或不存在,则导致请求使用SQLCacheDependency跳过。

其他提示

从sys.service_queue中选择*,其中名称为'sqlquerynotificationservice - %'

返回'sqlquerynotificationservice- [一些guid]'

如果在IDE调试的同时查看SQLDepencyency的非公共成员_SERVERUSERHASH的非公共成员,您将找到包含相同条目的集合。如果微软会如此善待,那么是。

在我的情况下,我有一个类库,由某些Web应用程序使用。所以我没有app.config。我还在静态事件中使用SQLCachedenceency。所以我正在使用静态布尔喜欢:
if (!isCachingEnabled)
  isCachingEnabled = SqlDependency.Start(builder.ProviderConnectionString);
. 到目前为止,到目前为止正在运行,但我在使用类库时向建议开放。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top