我在服务器上运行了一个具有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?)我没有重新开始重新订阅的工作。
感谢您的时间和答案
答案 0 :(得分: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/