Ранее уже упоминалось о возможных проблемах после установки обновления 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 тут наверно самое место похлопать в ладоши :)
Добавить комментарий