SQLDependency挂一段时间后失效。
如题,使用SQLDependency来监测数据库改变,代码已实现,功能正常。
但是有时候挂一段时间后就失效了,不能再随数据库改变而触发OnChange事件,这个“一段时间”有长有短。从有效到无效的过程,程序不会有任何错误提示,就只是不能触发了。
于是查看了一下SQLServer日志,发现有重复的两个错误:
还有一个出现过一次的错误:
不了解SQLDependency类的内部实现,所以不知道原因。不知道有没有可能是网络不稳定导致的数据库连接断开导致的?如果是的话有没有好的解决办法?
但是有时候挂一段时间后就失效了,不能再随数据库改变而触发OnChange事件,这个“一段时间”有长有短。从有效到无效的过程,程序不会有任何错误提示,就只是不能触发了。
于是查看了一下SQLServer日志,发现有重复的两个错误:
The query notification dialog on conversation handle '{B95987F3-A925-E811-BF09-F8BC12926344}.
' closed due to the following error: '
<?xml version="1.0"?>
<Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error">
<Code>-8490</Code>
<Description>Cannot find the remote service 'SqlQueryNotificationService-133aba61-6b63-4808-964f-aded417c518d' because it does not exist.</Description>
</Error>'The query notification dialog on conversation handle '{0C0CFA69-7B23-E811-A9B6-F8BC12926344}.
' closed due to the following error: '
<?xml version="1.0"?>
<Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error">
<Code>-8470</Code>
<Description>Remote service has been dropped.</Description>
</Error>'.
还有一个出现过一次的错误:
Service Broker needs to access the master key in the database 'PrintedRecords'. Error code:26. The master key has to exist and the service master key encryption is required.不了解SQLDependency类的内部实现,所以不知道原因。不知道有没有可能是网络不稳定导致的数据库连接断开导致的?如果是的话有没有好的解决办法?
...全文
相关推荐
SqlDependency
**设置SqlDependency对象**:然后,创建一个 SqlDependency 对象,并将其关联到 SqlCommand。这一步会创建一个订阅,订阅的内容是你之前定义的查询。
sqlDependency实例代码
如果在这段时间内没有新的数据更改,订阅将自动失效。可以通过设置`SqlDependency.Start`方法的参数来调整这个时间。
Sqldependency
在本文中,我们将深入探讨SqlDependency的工作原理、使用方法以及它在实际开发中的应用场景。首先,SqlDependency的核心是OnChange事件。
SqlDependency应用
**订阅数据库更改**:SqlDependency对象是订阅机制的核心,通过创建SqlDependency实例并将其与SqlCommand对象关联,可以设置监听特定SQL查询的结果集。
使用SqlDependency进行数据更改事件
**缓存**:SqlDependency依赖于数据库缓存(计划缓存),如果SQL Server清除了计划缓存,依赖可能会失效。4.


