azure - 诊断 Service Fabric 应用程序失败的原因

标签 azure azure-service-fabric

我有无状态 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获取真正的原因/异常消息/错误消息吗?

最佳答案

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

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

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

这是一项相当大的工作量,但如果您想了解应用程序在生产中所做的事情,那么这是必要的。无论您是否在旧金山运行,这也是您需要做的事情(以某种形式)。

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

希望有所帮助...祝你好运!

关于azure - 诊断 Service Fabric 应用程序失败的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36195427/

相关文章:

azure - 使用 API 在 Azure Key Vault 中创建 key

.net - Azure Signalr 服务拒绝将连接添加到组

reactjs - 如何在 api (asp.net api) 中对通过 spa(react 应用程序)从 azure ad b2c 获取的访问 token 进行身份验证?

powershell - 使用本地加载的组件部署 Service Fabric 集群,而不是安装所需的组件

azure-service-fabric - Windows 上使用 Java 的 Service Fabric

azure - Azure Service Fabric 上通过 https 的无状态 Web Api

entity-framework - 具有 Entity Framework 作业并行性的 Azure WebJobs

python - 使用 Python 文件从 Databricks 上的 Azure Artifacts 安装 Python 包

visual-studio - Service Fabric 服务引用具有黄色三角形

c# - 云服务到 Service Fabric 身份验证?