SqlDependency/Query notification - SQL Server重启

6

我有一个应用程序在服务器上运行,它具有SqlDependency /查询通知 - 监视不同服务器上表的更改。

它一直工作得很好,直到我们重新启动SQL Server。当由于某些维护和补丁而重新启动SQL Server时,其他应用程序会抛出以下错误并停止。我可以肯定地说,一旦SQL Server启动并运行,它就不再监视更改,因此它会停止。

我必须重新启动应用程序以重新订阅查询通知。我在代码中没有抛出任何异常,这会停止应用程序。我捕获异常并发送电子邮件。

System.Data.SqlClient.SqlException (0x80131904):在向服务器发送请求时发生传输级错误。(提供程序:TCP提供程序,错误:0 - 远程主机强制关闭了现有连接。) --->

System.Data.SqlClient.SqlException (0x80131904):在建立与SQL Server的连接时发生网络相关或特定于实例的错误。找不到服务器或无法访问服务器。请验证实例名称是否正确,并确认SQL Server已配置为允许远程连接。

我对SqlDependency /查询通知还不熟悉,因此不确定这是否是预期行为或我做错了什么。从其他帖子中我了解到(SqlDependency Reliablity?),我不必重新启动作业以重新订阅。

感谢您的时间和答案。


1
这是预期的。如果由于 SQL Server 重启而导致 SQL 连接中断,应用程序将需要重新订阅。 - Dan Guzman
1个回答

0

这是正常的,因为当您重新启动 SQL Server 时,服务会停止,并且连接到 SQL Server 的任何应用程序都会抛出此错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。

为避免此问题,您可以为每个应用程序使用不同的实例。您可以安装具有不同名称的新服务器实例以避免此问题。这样,当您重新启动单个 SQL Server 实例时,其他 SQL Server 实例仍将保持在线。

您可以按照以下步骤安装或创建新的 SQL Server 实例:

https://4sysops.com/archives/how-to-create-a-new-sql-server-2012-instance/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接