0

我正在尝试在我的服务结构集群上部署无状态应用程序。部署应用程序后,它会立即进入警告状态,然后出现错误状态,并出现以下错误:

“System.RA”报告属性“ReplicaOpenStatus”的警告。副本在 _nt1vm_4 上打开期间出现多次故障。API 调用:IStatelessServiceInstance.Open(); 错误 = System.IndexOutOfRangeException (-2146233080) 索引超出了数组的范围。在 System.Fabric.Common.Tracing.FabricEventSource.ExtensionsEventsInternal.WriteWarning(String id, String type, String message) 在 Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.<System.Fabric.IStatelessServiceInstance.OpenAsync>d__0.MoveNext() 对于更多信息请参阅:https://aka.ms/sfhealth

这发生在我的本地 SF 集群和部署在 Azure 上时。由于它甚至没有进入应用程序中的主程序,因此我无法看到任何其他有意义的日志或事件。我还登录了远程节点并查看了日志,除此之外没有发现任何其他内容。从这条消息中并不清楚这个错误的来源,我无法在没有应用程序日志的情况下进行调试。

服务结构应用程序错误

4

1 回答 1

0

我会看两件事:

  1. 您是否对 ServiceEventSource 进行了任何更改,以使其在写出值时访问无效(负)索引?
  2. 在任何服务出现故障的入口类中的 RunAsync 方法中,将其全部包装在 try/catch 中并设置异常抛出的断点 - 如果它运行时没有错误,它至少会缩小潜在问题的出现范围从。
于 2021-07-13T22:35:30.993 回答