Настройка отказоустойчивого партнера для Sitecore - PullRequest
3 голосов
/ 02 сентября 2011

В настоящее время я сталкиваюсь с действительно странной (по крайней мере для меня) проблемой, касающейся конфигурации партнера по отказоустойчивости в 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" />

Как видите, яМы настроили отказоустойчивого партнера, который принимает те же учетные данные, что и основной сервер базы данных.

Если я остановлю основную базу данных во время работы, я получу исключение SqlException, которое говорит:

 Login failed for user 'user'

Любой дальнейший запрос покажет то же исключение, если AppPool не будет переработан.Теперь приложение указывает на базу данных отработки отказа ...

Разве приложение не должно переключать саму базу данных?

Единственная идея, которая у меня возникла, была примерно такой, но она кажется очень, очень грязнойи я даже не проверял это:

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();
        }
    }
}

1 Ответ

3 голосов
/ 05 сентября 2011

Если вы используете SQL Server с зеркалированием, аварийное переключение будет происходить автоматически, только если вы используете сервер Witness, в противном случае вам придется обрабатывать переключение вручную.

Вы можете использовать SQL Server Express какследящий сервер и может запустить его с веб-сервера, если нет других доступных серверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...