如何找出调试在服务结构中显示许多异常的原因

时间:2017-08-30 12:29:05

标签: azure-service-fabric

我正在运行我在本地开发群集上的服务结构中创建的应用程序。

在调试并查看输出时,其中填充了

Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll

一切都是绿色的,我没有找到任何不按预期工作的东西。那么究竟我该怎么做才能找出它是什么InvalidOperation :)?

检查事件日志和诊断事件,不显示任何错误。

2 个答案:

答案 0 :(得分:1)

它可能是在SFA内部被捕获和处理的,如果它会很严重,它会被重新抛出,所以我不会太担心它。

可能与本地开发环境有关,并且某些操作在非Azure /本地安装环境中无效。

例如,本地开发环境允许您在一台计算机上模拟5节点集群。由此引起的任何异常都可能被捕获,如果检测到它是非真实世界环境,则可以以不同方式处理。

答案 1 :(得分:0)

我看到了完全相同的东西,但在生产中也同意我并不认为这是一个问题,尽管它会影响性能。

我会在上下文中添加更多内容,以期帮助其他看到相同内容的人。

这里我的代码工作正常,而且我没有看到异常被抛出。

Log.Information("About to record activity for {Machine}", machineId);
using (var tx = StateManager.CreateTransaction())
{
    await map.AddOrUpdateAsync(tx, machineId, _ => new SystemInfo { LastSeenUtc = timestampUtc }, (_, info) =>
    {
        info.LastSeenUtc = timestampUtc;
        return info;
    }).ConfigureAwait(false);
    await tx.CommitAsync().ConfigureAwait(false);
    Log.Information("Just committed transaction {Tx}", tx.TransactionId);
}
Log.Information("Recorded activity for {Machine}", machineId);

并使用调试输出窗口。我使用serilogSerilog.Sinks.Debug接收器来捕获输出。

[07:48:27 INF] About to record activity for d6441d45e1834db7860c00a8074652f9
[07:48:27 INF] Just committed transaction 131489813076754311
[07:48:27 INF] Recorded activity for d6441d45e1834db7860c00a8074652f9
Exception thrown: 'System.InvalidOperationException' in Microsoft.ServiceFabric.Data.Impl.dll
Transaction 131489813076754311 is committing or rolling back or has already committed or rolled back

我看到堆栈跟踪为 Stack trace

其他一切似乎都很好 - 但抛出异常并不是很好的表现。