.Net 应用程序未在连接字符串中使用故障转移伙伴

.Net Application not using Failover Partner in Connection String

我在两台 SQL 2012 标准版服务器上有 SQL 镜像设置,带有见证服务器。镜像在事物的 SQL 方面非常有效,我可以故障转移到每个事物。问题是当我手动故障转移到镜像服务器时,我的 .Net 应用程序没有访问故障转移伙伴,它们只是不断尝试访问主服务器并最终超时。我可以在 SQL 错误日志中看到主服务器上的连接尝试;错误是 "Failed to the explicitly specified database" 这是有道理的,因为它现在是镜像并且处于恢复状态。

这是我的连接字符串:

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"

我试过以下方法:

如果我在故障转移后立即回收应用程序池,一切都很好,我什至可以故障转移回主实例,一切都很好。但是,如果我必须在故障转移后手动回收应用程序池,它会破坏 high-availability/automatic 故障转移的全部目的。

我在这里错过了什么?

编辑: 我基本上需要从这个页面解决方案 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 端口,一切似乎都完美地进行了故障转移。