Не устанавливается обновление Update for Service Bus Server 1.1 (KB3086798) — "Package does not contain compatible branch patch"

Ранее уже упоминалось о возможных проблемах после установки обновления KB3102467, которое поднимает .NET Framework до версии 4.6.1. И так получилось, что развёртывание этого обновления в течение долгого времени у нас ограничивалось рамками тестовой группы хостов, так как информация о совместимости того или иного продукта с этой версией .NET Framework появлялась с существенной задержкой после выпуска самого обновления. И вот наступил тот момент, когда было решено перенести соответствующее обновление на продуктивную группу хостов. После развёртывания обновления были проведены базовые проверки всех имеющихся под рукой сервисов и в целом всё было хорошо, однако без сюрпризов всё же не обошлось.

После обновления .Net Framework до версии 4.6 на сервере с Windows Server 2012 R2 и установленным Service Bus 1.1 возникла проблема с запуском службы Service Bus Gateway. Данная служба переходит в состояние циклического перезапуска, так как настроена на перезапуск, но фактически запуститься не может. При этом в процессе запуска службы в эвент-логе Application последовательно регистрируются 2 ошибки:

Log Name:      Application
Source:        .NET Runtime
Event ID:      1025
Level:         Error
Description:   Application: Microsoft.ServiceBus.Gateway.exe. Framework Version: v4.0.30319. Description: The application requested process termination through System.Environment.FailFast(string message). Message: Failed to start Service Bus Gateway Service.
...
Log Name:      Application
Source:        Application Error
Event ID:      1000
Task Category: (100)
Level:         Error
Description:   Faulting application name: Microsoft.ServiceBus.Gateway.exe, version: 2.0.30904.0, time stamp: 0x5227aa54. Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000. Exception code: 0x80131623
...

Выяснилось, что проблемы совместимости Service Bus 1.1 были решены ещё в конце 2015 года. В статье Update to Service Bus for Windows Server 1.1 for the .NET Framework 4.6 можно найти информацию о том, что проблема решается установкой обновления Service Bus 1.1 — KB3086798. Однако попытка установки этого обновления в нашем случае оказалась безуспешной, так как в ходе установки появлялось сообщение об ошибке «Package does not contain compatible branch patch«, а процесс установки при этом прерывался.

Не помогла также попытка установки обновления с помощью Web Platform Installer. Сделать это можно командой:

"%programfiles%\Microsoft\Web Platform Installer\WebpiCmd.exe" /Install /Products:ServiceBus_1_1_NETFramework46_Update

В конечном итоге выяснилось, что причиной невозможности установки обновления KB3086798 стало то, что ранее к пакету Service Bus 1.1 было установлено обновление KB3030966. После удаления этого обновления с последующей перезагрузкой системы, установка обновления KB3086798 прошла без ошибок и изначальная проблема с запуском службы Service Bus Gateway была локализована.

Таким образом, корень проблемы в данном случае заключается не столько в обновлении версии .Net Framework, сколько в неразрешаемых автоматически зависимостях между обновлениями конкретного отдельно взятого продукта (Service Bus 1.1). Почитателям Linux тут наверно самое место похлопать в ладоши :)

Добавить комментарий