SQL服务器2017年 - EF试图比在连接字符串来访问不同的数据库

问题描述 投票:0回答:1

我有一个非常尴尬的境地,我不知道如何解决它。

下面是详细信息。

我有三个SQL服务器2017年实例,这是与配置了高可用性生产数据库中。

该服务器SRV1,SRV2和SRV3

我有一个名为DB1生产数据库,具有高可用性配置如下: - 在主SRV1节点(R / W) - 的辅助节点(R / O)上SRV2和SRV3

同样在SRV3我有数据库中名为DB1_DEMO的分段复制

从我们不时在DB1_DEMO恢复生产数据,新的测试数据。

另外我把数据库的本地副本的发展,我的本地dev的机器,也称为DB1,我用它来刷新EF模型上。

该应用程序使用与DB-第一种方法EF6。当我们做一些改变数据库,我们刷新EF模型(EDMX)。

这个问题,最近开始,如下:

即使对我有正确的连接字符串的应用程序的分段复制(指向SRV3和DB1_DEMO),当我运行一些的SP(使用ADO.NET或EF),我收到以下错误:

The target database ('DB1') is in an availability group and is currently
accessible for connections when the application intent is set to read only.
For more information about application intent, see SQL Server Books Online.

但是,代码不会访问数据库DB1,但DB1_DEMO。

连接字符串分清楚,DB1_DEMO。

<add name="MpnModelDC" connectionString="metadata=res://*/Model.MpnModel.csdl|res://*/Model.MpnModel.ssdl|res://*/Model.MpnModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Server=SRV3;Database=DB1_DEMO;MultipleActiveResultSets=True;&quot;" providerName="System.Data.EntityClient" />

的确,上SRV3也有生产数据库,DB1的读/只复制,但只作为一个次级R / O节点。

并没有在舞台应用程序指向DB1数据库名。

这不是发生在每一个SP,但只有少数人。

任何想法发生了什么?

谢谢

entity-framework high-availability sql-server-2017
1个回答
0
投票

任何想法发生了什么?

这是我的猜测:您有一些代码使用一个3部分组成的名称引用的对象。例如,在DB1_DEMO存储过程中有这样的:

SELECT ... FROM DB1.DBO.SOMETABLE
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.