c# - 故障转移后连接到镜像数据库

标签 c# sql sql-server failover mirror

我有两个镜像 SQL Server(例如 A 和 B)。 我写了一个简单的 C# 程序(通过 SqlConnection 连接),它将行插入到数据库中。当我在服务器A上进行故障转移时,程序抛出异常,然后我尝试重新连接,并通过超时得到异常(**与服务器成功建立连接,但在登录前握手期间发生错误。 (提供商:SSL 提供商,错误:0**)。

当我重新启动应用程序时,连接已成功建立(到服务器 B)。接下来,我在 B 服务器上进行故障转移,程序抛出异常,然后我尝试重新连接,它的工作 - 连接到 A witout 重新启动程序。

我的连接字符串:

Data Source=SERVER_A;Failover Partner=SERVER_B;Initial Catalog=TEST_DB;persist security info=True;user id=USER_LOGIN;password=USER_PASS;Connection Timeout=60;

我也尝试设置大超时(60 秒),并尝试清除所有 sqlconnection 池,按连接清除单个池,但它不起作用。

有趣的事实:如果我使用域登录名和密码,一切正常! (用户SID相同)

最佳答案

很难说出您的确切问题是什么。也许是故障转移不是即时的,并且无法传输查询状态 - 请参阅 https://dba.stackexchange.com/questions/27528/can-availability-groups-provide-seamless-failover-with-no-query-failures .如果您的应用程序立即重试查询,则故障转移节点可能仍处于接管过程中,因此尚未准备好接受连接。

关于c# - 故障转移后连接到镜像数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548171/

相关文章:

java - 从数据库生成直方图

sql - 如何从 SQL Server 中的现有表创建类型?

c# - 如何在应用程序设置中保存图像或文件流? UWP C#

c# - C# 中允许在 O(1) 中反转的数据结构

c# - 如何使用 StructureMap 将不同的依赖项注入(inject) WebApi Controller

sql - 查找区分大小写的记录

c# - View 显示不同的值,然后在其模型中显示不同的值

sql - 如何将此 sql 查询转换为 mongodb

c# - C# 和 SQL 中的相同校验和

c# - 在 C# 中使用 SQL 获取数据库的驱动器号