.Net应用程序未在连接字符串中使用故障转移伙伴
本文关键字:故障 转移 伙伴 字符串 应用程序 连接 Net | 更新日期: 2025-05-08 14:19:53
我在两台带有见证服务器的SQL 2012 Standard Edition服务器上安装了SQL镜像。镜像在SQL方面工作得很好,我可以很好地故障切换到每一个。问题是,当我手动故障切换到镜像服务器时,我的.Net应用程序没有访问故障切换伙伴,它们只是不断尝试访问主服务器,最终超时。我可以在SQL错误日志中看到主服务器上的连接尝试;错误为"失败到明确指定的数据库",这是有道理的,因为它现在是镜像并且处于还原状态。
这是我的连接字符串:
connectionString="Server=x.x.x.x,[port];Failover Partner=x.x.x.x,[port];Database=[dbname];Network=dbmssocn;Integrated Security=SSPI;Connection Timeout=60;MultipleActiveResultSets=true"
我尝试过以下方法:
- 增加我的连接超时
- 设置池=False
- Windows主机文件中映射的IP地址
如果我在故障转移后立即回收应用程序池,一切都会很好,我甚至可以故障转移回主实例,一切都很好。但是,如果我必须在故障切换后手动回收应用程序池,它将无法实现高可用性/自动故障切换的全部目的。
我在这里错过了什么?
编辑:我基本上需要从这个页面解决场景5和6:https://blogs.msdn.microsoft.com/spike/2010/12/08/clarification-on-the-failover-partner-in-the-connectionstring-in-database-mirror-setup/

对于其他有此问题的人。我将SQL实例切换回使用默认的1433端口,一切似乎都在完美地切换。