Диагностика причины сбоя приложения Service Fabric

У меня есть служба Service Fabric без сохранения состояния. Моя служба также имеет конечную точку службы веб-API OWIN. Если я получаю какое-либо исключение или ошибку при запуске службы, я вижу одно и то же сообщение об ошибке для всех типов или ошибок и исключений:

    Error event: SourceId='System.FM', Property='State'.
    Partition is below target replica or instance count.

Так что действительно трудно каждый раз видеть настоящую проблему. Я попробовал это:

    AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
    {

    };

Но это не помогло. Я попытался обернуть весь свой код в try/catch, но исключение не было перехвачено.

Кто-нибудь знает, как получить реальную причину/сообщения об исключениях/сообщения об ошибках из SF?


person Pavel Baykov    schedule 24.03.2016    source источник


Ответы (2)


У вас есть два основных варианта... выдать диагностическую информацию (например, ошибки, события приложения и т. д.) из кода, а затем захватить/запросить ее или запустить приложение вне Service Fabric и отладить проблемы запуска локально.

В рабочем развертывании SF вам потребуется настроить диагностику, чтобы ваше приложение могло генерировать события трассировки событий для Windows (ETW) наряду с событиями, генерируемыми базовой средой выполнения Service Fabric:

https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostic-how-to-use-elasticsearch/

Это изрядный объем работы, но он необходим, если вы хотите иметь хоть какое-то представление о том, что делает ваше приложение в рабочей среде. Это также то, что вам нужно будет сделать (в той или иной форме), независимо от того, работаете ли вы в SF или нет.

Поскольку в вашем случае вы хотите отладить проблему запуска в своем коде и поскольку у вас есть служба без сохранения состояния, основанная на веб-API OWIN, я бы сначала попытался отладить ее локально вне Service Fabric и посмотреть, сможете ли вы изолировать вопрос таким образом. Конечно, это поможет только в том случае, если вы а) можете работать локально и б) если проблема не связана с самой интеграцией/запуском SF. Но единственный способ определить это, вероятно, попытаться запустить локально, вне среды выполнения SF.

Надеюсь, это поможет... удачи!

person JoshL    schedule 24.03.2016

У меня возникла та же проблема с той же общей ошибкой из проводника Service Fabric. Поскольку я работал локально, я смог открыть окно событий диагностики в Visual Studio, и это дало мне более подробное сообщение об ошибке. Если вы не работаете локально, вы все равно можете отлаживать.

См. следующую ссылку: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-debugging-your-application

person BreakfastIsBest    schedule 19.07.2017