Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlServer db镜像故障切换,使用EF6失败原则仅镜像_C#_Sql Server_Entity Framework_Sql Server 2014_Database Mirroring - Fatal编程技术网

C# SqlServer db镜像故障切换,使用EF6失败原则仅镜像

C# SqlServer db镜像故障切换,使用EF6失败原则仅镜像,c#,sql-server,entity-framework,sql-server-2014,database-mirroring,C#,Sql Server,Entity Framework,Sql Server 2014,Database Mirroring,Sql server 2014、实体框架6.1.2、.net框架4.5、IIS 8、高安全模式下的数据库镜像,无见证 我有以下连接字符串 Data Source=A;Failover Partner=B;Initial Catalog=DB;Integrated Security=False;User Id=sa;Password=Password;MultipleActiveResultSets=true;Connect Timeout=10 从:A=原则,B=镜像开始 当我执行从a到B(从

Sql server 2014、实体框架6.1.2、.net框架4.5、IIS 8、高安全模式下的数据库镜像,无见证

我有以下连接字符串

Data Source=A;Failover Partner=B;Initial Catalog=DB;Integrated Security=False;User Id=sa;Password=Password;MultipleActiveResultSets=true;Connect Timeout=10
从:A=原则,B=镜像开始
当我执行从a到B(从原则到镜像)的手动故障切换时,它会失败,无法打开连接-Erro 40

从:A=镜像,B=原理开始
手动故障切换有效。
现在:A=原则,B=镜像
然后,在不重新启动站点的情况下,再次故障切换回,错误40。
重新启动IIS,再次正常工作

以下是测试连接的代码:

while (!_exitFlag)
{
    using (var context = new EntityContext())
    {
        var result = context.Foos.Count();
    }
}

有什么想法吗?

事实证明,客户端是从不同的lan加入的,因此在sql server上注册的故障切换伙伴无法在客户端上解析

SELECT DB_NAME(database_id) AS 'DatabaseName', mirroring_partner_instance
FROM sys.database_mirroring WHERE mirroring_guid IS NOT NULL;  
当.net应用程序连接到故障转移伙伴时,将为您提供故障转移伙伴的“名称”。此名称在.net应用程序所在的客户端上必须是“可ping”的

当ado.net连接到“Data Soruce”值中指定的服务器时,它会从数据库检索故障转移伙伴,而忽略连接字符串中的伙伴。(这是一份很棒的工作。)

我还没有研究为什么反向工作,但显然在某些情况下,连接字符串中的“数据源”服务器会再次被检查

我从这篇文章中得到了这个想法:(基本上,当您在自定义端口上搜索DB mirror时,这个问题会得到更为突出的讨论。)

编辑-我现在又问了一个问题来解决这个问题: