gpt4 book ai didi

c# - SQL 依赖项在 SQL Server 中导致错误

转载 作者:行者123 更新时间:2023-11-30 13:00:56 26 4
gpt4 key购买 nike

我们有一个 C# 网络应用程序,它使用 SQL 依赖项使缓存的查询数据过期。尽管一切正常,但我们发现产生了很多错误,尤其是在我们的生产环境中。

第一条错误信息是这样的:

Service Broker needs to access the master key in the database 'SubscriberManager'. Error code:32. The master key has to exist and the service master key encryption is required.

它出现在服务器事件日志和 SQL 服务器日志文件中。我相信消息的实际内容有点像转移注意力,因为我已经创建了一个数据库主 key 。

我也试过

  • 重新创建服务主 key 和数据库主 key 。
  • 确保数据库所有者是 sa。
  • 确保用户帐户有权创建服务、队列、程序和订阅查询通知
  • 确保代理已启用

我在研究这个问题时看到其他人有类似的错误,但错误代码似乎总是 25 或 26 而不是 32。我一直找不到任何能告诉我这些错误代码是什么意思的东西,所以我不是肯定的意义。

与此同时,我们有时也会收到 .net 的错误消息,内容如下:

System.InvalidOperationException: When using SqlDependency without providing an options value, SqlDependency.Start() must be called for each server that is being executed against

应用在Application_Start中调用SqlDependency.Start虽然事件。

虽然这些错误奇怪地是间歇性的,但它们不会在每次点击特定页面时发生,甚至不会在每次创建或触发通知时发生。我已尝试附加 SQL Profiler 并监视代理事件,并看到创建的通知没有任何问题触发。

最后我看到了很多这样的错误:

The query notification dialog on conversation handle '{2FA2445B-1667-E311-943C-02C798B618C6}.' closed due to the following error: '-8490Cannot find the remote service 'SqlQueryNotificationService-7303d251-1eb2-4f3a-9e08-d5d17c28b6cf' because it does not exist.'.

我知道,由于 SqlDependency.Stop 不会清理数据库中的所有内容,我们在我们的一台生产服务器上看到了数千个这样的方式,因此其中一定数量的这些是正常的。

令人沮丧的是,我们多年来一直在使用 SQL 通知,现在没有任何问题,所以一定是我们的应用程序或服务器设置发生了某些变化,导致了这种情况,但此时我不知道是什么。

应用程序是运行在 Windows 2012 服务器上的 .net 4.0 MVC 和 WCF,它们调用也在 Windows 2012 上运行的 SQL 2012 服务器。

最佳答案

根据 Microsoft 的说法,如果 SQL Server 资源特别是内存不足,它可能会导致生成这些错误。

关于c# - SQL 依赖项在 SQL Server 中导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21183114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com