询问者
.net C#程序连接双机镜像sqlserver2008问题

问题
-
场境:
两台sqlserver 2008 分别是: 192.168.0.139 (主服务器); 192.168.140 (镜像服务器)
客户端:
.net C# 开发软件
问题描述:
两台sql服务器做了双机镜像处理,139为主服务器,140为镜像服务器,现在用.net C# 开发一软件连接到sql服务器,程序连接字符串里已经写明主服务器和镜像地址如下:
Data Source=192.168.0.139;Failover Partner=192.168.0.140;DataBase=mydb;User ID=sa;Password=sa;
程序启动运行后可以正常连接到主用139数据库,当在数据库上手动进行故障转移切换主用和镜像服务器时(139成为镜像服务器140为主服务器)时,程序不需要任何处理,可以自动连接到140上去,如果再次切换主用和镜像服务器时(140成为镜像服务器139为主服务器)时,程序就不能自动连接到139上去,经过vs2010调试发现程序还是在向镜像服务器140发起连接,所以连接失败。
我在msdn上查了一下相关资料,其中有文章说明,当第一次成功连接到主服务器时,主服务器分返回镜像服务器地址并缓存在程序里,当主服务器故障时程序会连接镜像服务器,那么镜像服务器如果异常时程序还时去连接第一次返回的镜像服务器,导致失败。网址如下:
Clarification on the Failover Partner in the connectionstring in Database Mirror setup
不知道有没有人知道怎么解决?