gpt4 book ai didi

c# - Azure Service Fabric FabricObjectClosedException

转载 作者:行者123 更新时间:2023-12-03 03:09:51 36 4
gpt4 key购买 nike

我有一个有状态服务,将内容存储在 IReliableDictionary 中。部署到本地集群后,我重新启动主节点以测试故障转移,但是,在执行此操作后,代码 StateManager.GetOrAddAsync>("MyDictionary") 抛出 FabricNotPrimaryException,然后在以后的试验中它抛出 FabricObjectClosedException。我可以检查哪些事项来解决此问题?

最佳答案

解决此类错误的基本方法是捕获并记录抛出的异常:

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.FabricObjectClosedException 添加到 Visual Studio,然后在调试器中启用“抛出时中断”:

  1. 显示异常设置窗口(调试> Windows> 异常设置)
  2. 在异常类别列表中选择公共(public)语言运行时异常类别
  3. 点击绿色的+(加号)按钮添加新的异常(exception)类型
  4. 在文本框中键入System.Fabric.FabricObjectClosedException,然后按回车

添加新的异常类型时,抛出时中断复选框已被选中。

下次在调试器中执行应用程序时,调试器将在抛出 FabricObjectClosedException 时中断,您应该能够理解出了什么问题。

关于c# - Azure Service Fabric FabricObjectClosedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161893/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com