3
我目前正在面对Sitecore中配置故障转移合作伙伴的一个非常奇怪的问题(至少对我而言)。为Sitecore配置故障转移合作伙伴
环境:
- .NET Framework 3.5的
- 的Windows Server 2008 R2
- IIS 7.5
这是我的连接字符串之一:
<add name="master" connectionString="user id=user;password=password;Data Source=PRIMARY_SERVER\INSTANCE,60000;Failover Partner=FAILOVER_SERVER\INSTANCE,60000;Database=Sitecore_Master" />
由于你可以看到,我配置了一个故障转移伙伴,它接受与主数据库服务器相同的凭据。
如果我停止运转时的主数据库,I'll接收SQLEXCEPTION它说:
Login failed for user 'user'
任何进一步的请求将显示相同的异常,除非程序池再循环。现在应用程序指向故障转移数据库...
不应该切换数据库本身吗?
我唯一的想法是这样的事情,但感觉非常,非常肮脏,我甚至haven't测试它:
public class FailoverSqlDataProvider : SqlServerDataProvider
{
public FailoverSqlDataProvider(string connectionString) : base(connectionString)
{ }
protected override LanguageCollection LoadLanguages()
{
try
{
return base.LoadLanguages();
}
catch (Exception ex)
{
if (ex is SqlException)
{
Trace.TraceError("(FailoverSqlDataProvider) An error occured: {0}", ex.ToString());
HttpRuntime.UnloadAppDomain();
}
return new LanguageCollection();
}
}
}