5

我有一个运行在具有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?)我不必重新开始工作来重新订阅。

感谢您的时间和答案

4

1 回答 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/

于 2015-10-23T01:12:48.130 回答