C# Azure服务结构FabricObjectClosedException
我有一个有状态的服务,可以将内容存储在IReliableDictionary中。在部署到本地集群后,我重新启动了主节点以测试故障转移,但是,在我这样做之后,代码StateManager.GetOrAddAsync>(“MyDictionary”)抛出FabricNotPrimaryException,然后在以后的测试中抛出FabricObjectClosedException。我可以检查哪些方面来解决此问题?解决此类错误的基本方法是捕获并记录引发的异常:C# Azure服务结构FabricObjectClosedException,c#,azure,service-fabric-stateful,C#,Azure,Service Fabric Stateful,我有一个有状态的服务,可以将内容存储在IReliableDictionary中。在部署到本地集群后,我重新启动了主节点以测试故障转移,但是,在我这样做之后,代码StateManager.GetOrAddAsync>(“MyDictionary”)抛出FabricNotPrimaryException,然后在以后的测试中抛出FabricObjectClosedException。我可以检查哪些方面来解决此问题?解决此类错误的基本方法是捕获并记录引发的异常: try { using (var
try
{
using (var tx = StateManager.CreateTransaction())
{
await dictionary.AddOrUpdateAsync(tx, dto.Id, dto, (key, _) => dto);
await transaction.CommitAsync();
}
}
catch (FabricObjectClosedException ex)
{
ServiceEventSource.Current.Message(ex.ToString());
throw; // Pass the exception up as we only log it here.
}
但是,您的问题可能是一个非常简单的输入错误,例如DTO类上缺少[DataContractAttribute]
。在这种情况下,简单地调试问题以快速理解和修复问题可能更容易。为此,应将System.Fabric.fabricopobjectclosedexception
添加到Visual Studio,然后在调试器中启用“抛出时中断”:
FabriObjectClosedException
时,调试器将中断,您应该能够理解出错的原因