Типичные ошибки запуска веб-ферм и способы их устранения

В этой статье мы рассмотрим часто встречающиеся ошибки и методы их устранения.

  1. Ошибка: К базе данных есть активные подключения от других версий ELMA.

Рис. 1. Сообщение о наличии активных подключений к БД от других версий системы ELMA

  • Причина: веб-фермы работают на разных ревизиях.
  • Решение: Обновить веб-фермы до одинаковой ревизии.

2. Ошибка: Не удалось сконфигурировать провайдер по секции в конфигурации cacheService.
Данная ошибка может возникнуть после сброса базы данных или после перезапуска виртуальной машины.

Рис. 2. Сообщение об ошибке "Не удалось сконфигурировать провайдер по секции в конфигурации cacheService"

  • Причина: Остановка кэш-сервера.
  • Решение: Остановка пула и сайта ELMA на всех ВМ фермы. На ферме 1 необходимо зайти в Пуск – Все программы – AppFabric for Windows Server – Администрирование кэша PowerShell (Запустить от имени Администратора) и выполнить:

Start-CacheCluster

После этого запускаем пул и сайт ELMA на всех ВМ фермы.

3. Ошибка: Не запустилась головная ферма.

  • Решение: Заходим на головную ВМ, далее идем в Диспетчер служб IIS – WEBFARM-Servers Farms – ELMA3 – Servers. Если у ферм стоит статус Unknown, его надо заменить на Yes.

Рис. 3. Диспетчер IIS. Статусы ферм

Далее нужно выбрать первую ферму и в правом меню нажать на ссылку Repair Server.

Рис. 4. Диспетчер IIS. Ссылка "Repair Server" в правом меню

После этого в контекстном меню данной фермы выбираем пункт Make Server Available.

Рис. 5. Диспетчер IIS. Раздел "Monitoring and Managment"

4. Ошибка: Веб-ферма не запускается.

Рис. 6. Сообщение об ошибке

  • Полный текст ошибки: EleWise.ELMA.Runtime.Exceptions.ConfigurationInitializeException: Не удалось сконфигурировать провайдер по секции в конфигурации cacheService ---> Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode:SubStatus: There is a temporary failure. Please retry later. (One or more specified cache servers are unavailable, which could be caused by busy network or servers. For on-premises cache clusters, also verify the following conditions. Ensure that security permission has been granted for this client account, and check that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater than or equal to the serialized object size sent from the client.) ---> System.ServiceModel.CommunicationException: Подключение к сокету было прервано. Возможно, это вызвано ошибкой обработки сообщения, превышением времени ожидания на удаленном узле или проблемой с выделенным сетевым ресурсом. Тайм-аут локального сокета: "10675199.02:48:05.4775807". ---> System.IO.IOException: Сбой операции чтения, см. внутреннее исключение. ---> System.ServiceModel.CommunicationException: Подключение к сокету было прервано. Возможно, это вызвано ошибкой обработки сообщения, превышением времени ожидания на удаленном узле или проблемой с выделенным сетевым ресурсом. Тайм-аут локального сокета: "10675199.02:48:05.4775807". ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал подключение.
  • Решение: Нужно перенастроить пул приложения на Администратора машины, сети и кэша.

5. Ошибка: Ошибка обновления структуры БД: Не удалось выполнить метод EleWise.ELMA.Security.Db.SecurityDbStructure.FillCache3().

Рис. 7. Сообщение об ошибке обновления структуры БД

  • Решение: Остановка пула и сайта ELMA на всех ВМ фермы. На ферме 1 необходимо зайти в Пуск – Все программы – AppFabric for Windows Server – Администрирование кэша PowerShell (Запустить от имени Администратора) и выполнить:

Grant-CacheAllowedClientAccount Domain\UserName

6. Ошибка: 502 – веб-сервером в качестве шлюза или прокси-сервера получен недопустимый ответ (возникает часто, но не постоянно).

Рис. 8. Сообщение об ошибке 502

  • Решение: Зайдите в настройки веб-фермы на контроллере, далее в Диспетчер служб IIS – Proxy.

Рис. 9. Диспетчер IIS. Раздел "Server Farm - Proxy"

В открывшемся окне необходимо увеличить период ожидания ответа от сервера приложений. Для этого необходимо в разделе Proxy изменить значение в поле Time-out (seconds), например, на 600 секунд. При превышении времени генерации (данного значения) будет отображена ошибка 502.

Рис. 10. Диспетчер IIS. Раздел "Proxy"

Перезапуск кластера

Остановка пула и сайта ELMA на всех ВМ фермы. На ферме 1 необходимо зайти в Пуск – Все программы – AppFabric for Windows Server – Администрирование кэша PowerShell (Запустить от имени Администратора) и выполнить:

Stop-CacheCluster
Start-CacheCluster

После этого запускаем пул и сайт ELMA на всех ВМ фермы.

Удаление и создание кэша

Остановка пула и сайта ELMA на всех ВМ фермы.На ферме 1 необходимо зайти в Пуск – Все программы – AppFabric for Windows Server – Администрирование кэша PowerShell (Запустить от имени Администратора) и выполнить:

Remove-Cache ELMA
Remove-Cache ELMA_NH
Remove-Cache ELMA_NH_Locks

Далее необходимо подождать несколько минут (в это время осуществляется удаление кэшей – они могут долго удаляться) и потом выполнить:

New-Cache ELMA
New-Cache ELMA_NH
New-Cache ELMA_NH_Locks

В том случае, если при выполнении New-Cache отобразилась ошибка, значит кэши еще не успели удалиться, т.е. надо подождать еще немного и попробовать повторно выполнить запросы.
После этого запускаем пул и сайт ELMA на всех ВМ фермы.