Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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
C# SQL依赖关系导致SQL Server中出现错误_C#_Sql Server_Sqldependency - Fatal编程技术网

C# SQL依赖关系导致SQL Server中出现错误

C# SQL依赖关系导致SQL Server中出现错误,c#,sql-server,sqldependency,C#,Sql Server,Sqldependency,我们有一个C#web应用程序,它使用SQL依赖关系使缓存的查询数据过期。虽然一切正常,但我们看到很多错误,特别是在我们的生产环境中 第一条错误消息如下: ServiceBroker需要访问数据库中的主密钥 “订阅管理器”。错误代码:32。主密钥必须存在并且 需要服务主密钥加密 它显示在服务器事件日志和SQL server日志文件中。我相信消息的实际内容有点像是在转移视线,因为我已经创建了一个数据库主密钥 我也试过了 重新创建服务主密钥和数据库主密钥 确保数据库所有者是sa 确保用户帐户具有创建

我们有一个C#web应用程序,它使用SQL依赖关系使缓存的查询数据过期。虽然一切正常,但我们看到很多错误,特别是在我们的生产环境中

第一条错误消息如下:

ServiceBroker需要访问数据库中的主密钥 “订阅管理器”。错误代码:32。主密钥必须存在并且 需要服务主密钥加密

它显示在服务器事件日志和SQL server日志文件中。我相信消息的实际内容有点像是在转移视线,因为我已经创建了一个数据库主密钥

我也试过了

  • 重新创建服务主密钥和数据库主密钥
  • 确保数据库所有者是sa
  • 确保用户帐户具有创建服务、队列、过程和订阅的权限 查询通知
  • 确保代理已启用
我曾见过其他人在研究这个问题时犯过类似的错误,但错误代码几乎总是25或26而不是32。我一直找不到任何东西可以告诉我这些错误代码的含义,所以我不确定其意义

在发生这种情况的同时,我们有时也会从.net中得到一个错误,错误如下:

System.InvalidOperationException:使用不带 提供选项值时,必须调用SqlDependency.Start() 正在针对执行的每个服务器

应用程序在应用程序中调用SqlDependency.Start\u Start 尽管如此

尽管这些错误奇怪地是间歇性的,但它们并不是每次点击特定页面,甚至不是每次创建或触发通知时都会发生。我已经尝试连接SQL事件探查器并监视代理事件,并且看到创建的通知没有任何问题

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

会话句柄上的查询通知对话框 “{2FA2445B-1667-E311-943C-02C798B618C6}。”由于以下原因关闭 错误:'-8490无法 查找远程服务 &载脂蛋白;SqlQueryNotificationService-7303d251-1eb2-4f3a-9e08-d5d17c28b6cf' 因为它不存在

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

令人沮丧的是,我们已经使用SQL通知好几年了,现在还没有问题,所以我们的应用程序或服务器设置中一定发生了一些变化,导致了这种情况,但在这一点上,我不知道是什么


这些应用程序是运行在Windows 2012服务器上的.net 4.0 MVC和WCF,称为也运行在Windows 2012上的SQL 2012服务器。

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

您有原始文章吗?