SqlDependency/Query 通知 - SQL Server 重新启动
Posted
技术标签:
【中文标题】SqlDependency/Query 通知 - SQL Server 重新启动【英文标题】:SqlDependency/Query notification - SQL Server reboot 【发布时间】:2015-10-17 15:24:18 【问题描述】:我有一个在服务器上运行的应用程序,它有一个SqlDependency
/ 查询通知 - 监控不同服务器上表的更改。
在我们重新启动/重新启动 SQL Server 之前它工作正常。当 SQL Server 由于一些维护和补丁重新启动时,其他应用程序会抛出以下错误并停止。我可以肯定地说它会停止,因为一旦 SQL Server 启动并运行,它就不会监视更改。
我必须重新启动应用程序才能重新订阅查询通知。我不会在代码中抛出任何会停止应用程序的异常。我发现异常并发送电子邮件。
System.Data.SqlClient.SqlException (0x80131904):向服务器发送请求时发生传输级错误。 (提供者:TCP Provider,错误:0 - 现有连接被远程主机强行关闭。)--->
System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。
我是SqlDependency
/查询通知的新手,所以我不确定这是预期行为还是我做错了什么。这是我的理解(来自其他帖子 (SqlDependency Reliablity?),我不必重新开始工作即可重新订阅。
感谢您的时间和答案
【问题讨论】:
这是预期的。如果 SQL 连接因 SQL Server 重新启动而中断,应用程序将需要再次订阅。 【参考方案1】:这是正常的,因为当你重启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/
【讨论】:
以上是关于SqlDependency/Query 通知 - SQL Server 重新启动的主要内容,如果未能解决你的问题,请参考以下文章