我有一个镜像的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
对此有任何帮助将不胜感激
答案 0 :(得分:0)
经过大量研究并得到许多团队的帮助,我解决了这个问题。
发现应用程序试图在db故障转移时连接到默认端口sql server 1433,即使在连接字符串中指定了端口号。
使用ClicConfig.exe
在两个具有端口号的应用程序服务器中指定别名此解决方案由Microsoft提供。