我有两个镜像SQL Server(例如A和B)。
我写了一个简单的C#程序(通过SqlConnection
连接),它将行插入到DB中。当我在服务器A上进行故障转移时,程序抛出异常,然后我尝试重新连接,并通过超时(**A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0**
)获得异常。
当我重新启动应用程序时,连接已成功建立(到服务器B)。接下来,我在B服务器上进行故障转移,并且程序抛出异常,然后我尝试重新连接,并且它的工作 - 连接到A无法重新启动程序。
我的连接字符串:
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相同)
答案 0 :(得分:0)
很难说出你的确切问题。也许它的故障转移不是即时的,并且无法转移查询状态 - 请参阅https://dba.stackexchange.com/questions/27528/can-availability-groups-provide-seamless-failover-with-no-query-failures。如果您的应用程序立即重试查询,则故障转移节点可能仍然处于接管过程中,因此未准备好接受连接。