【问题标题】:Diagnose reason of failng Service Fabric application诊断 Service Fabric 应用程序失败的原因
【发布时间】:2016-07-11 18:18:06
【问题描述】:

我有无状态 Service Fabric 服务。我的服务还有一个 OWIN Web Api 服务端点。如果我在服务启动时遇到任何异常或错误,我会看到所有类型或错误和异常的相同错误消息:

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

所以每次都很难找到真正的问题。 我试过这个:

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

    };

但这没有帮助。我试图将所有代码包装在 try/catch 中,但没有发现异常。

有谁知道如何从 SF 获取真正的原因/异常消息/错误消息?

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    您有两个基本选项...从您的代码中发出诊断信息(如错误、应用程序事件等),然后捕获/查询该信息,或者在 Service Fabric 之外运行您的应用并在本地调试启动问题。

    在 SF 生产部署中,您需要设置诊断,以便您的应用可以在核心 Service Fabric 运行时发出的事件旁边发出 Windows 事件跟踪 (ETW) 事件:

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

    这是一项相当大量的工作,但如果您打算了解您的应用程序在生产中的作用,这是必要的。无论您是否在 SF 中跑步,这也是您需要做的事情(以某种形式)。

    由于您想在代码中调试启动问题,并且由于您拥有基于 OWIN Web API 的无状态服务,因此我首先尝试在 Service Fabric 之外本地调试它,看看是否您可以通过这种方式隔离问题。当然,这仅在您 a) 能够在本地运行和 b) 如果问题不是特定于 SF 集成/启动本身的情况下才有帮助。但确定这一点的唯一方法可能是尝试在 SF 运行时之外的本地运行。

    希望对您有所帮助……祝您好运!

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,Service Fabric 资源管理器中出现了同样的一般错误。由于我在本地运行,我能够在 Visual Studio 中打开诊断事件窗口,这给了我更详细的错误消息。如果您不在本地运行,您仍然可以调试。

      查看以下链接:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-debugging-your-application

      【讨论】:

        猜你喜欢
        • 2013-08-01
        • 1970-01-01
        • 2015-12-24
        • 2011-12-31
        • 2021-04-10
        • 1970-01-01
        • 2019-04-25
        • 2018-04-18
        • 2017-03-15
        相关资源
        最近更新 更多