Db在镜像环境中进行故障转移,导致Web应用程序的连接尝试失败,直到重新启动应用程序池

时间:2016-12-09 08:44:16

标签: sql-server-2008-r2 iis-8.5 database-mirroring automatic-failover

我有一个镜像的sql server db环境。 IIS中托管的负载平衡应用程序正在访问数据库。在连接字符串中,我提到了FailOver合作伙伴。当我从db1执行故障转移到db2时,应用程序无法连接。

我收到的错误是:

  

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:命名   管道提供程序,错误:40 - 无法打开到SQL Server的连接)   at MyMethod()at MyMethod()   System.ComponentModel.Win32Exception(0x80004005):网络路径   找不到System.Data.SqlClient.SqlException(0x80131904):.   服务器未找到或无法访问。验证该实例   名称是正确的,并且SQL Server配置为允许远程   连接。 (提供者:命名管道提供者,错误:40 - 不能   打开与SQL Server的连接)--->   System.ComponentModel.Win32Exception(0x80004005):网络路径   没找到。

重新启动应用程序池后,应用程序将能够再次连接到数据库。 我的连接字符串如下所示。

<add name="SqlString" connectionString="Data Source=12.34.56.79,9100;Failover Partner=12.34.56.78,9100;Initial Catalog=test;Persist Security Info=True;User ID=####;Password=#####" />

我使用的是Sql server 2012,IIS 8.5,Windows Server 2012

对此有任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

经过大量研究并得到许多团队的帮助,我解决了这个问题。

发现应用程序试图在db故障转移时连接到默认端口sql server 1433,即使在连接字符串中指定了端口号。

使用ClicConfig.exe

在两个具有端口号的应用程序服务器中指定别名

此解决方案由Microsoft提供。