【问题标题】:Strategies for implementing recovery mode实施恢复模式的策略
【发布时间】:2011-10-05 04:15:05
【问题描述】:

我有一个 Windows 应用程序,如果它失败了,我想默认为“恢复模式”,在失败后第一次运行它。

我可以标记错误以及用户可以执行的不同操作来恢复,但让我头疼的是恢复模式实用程序的实际启动。我有几个想法,但我希望其他人可能会遇到更好的方法。

1) 当主应用加载第一件事时,它会检查先前的错误,然后启动恢复模式实用程序。

这样做的问题是,如果应用程序有任何问题(很可能),那么它根本不会启动。

2) 让用户启动一个实用程序来检查以前的错误,而不是主应用程序,然后启动主应用程序或进入恢复模式。

这解决了第一个想法的问题,但是目标机器非常锁定并且可能存在部署问题。

还有其他实现恢复模式的策略吗?

谢谢

【问题讨论】:

  • 我认为您应该选择选项 2。我没有看到任何其他可能性。

标签: .net architecture error-handling recovery disaster-recovery


【解决方案1】:

我们解决了一些类似的情况如下:

  • 使“恢复模式实用程序”始终由用户启动
  • “恢复模式实用程序”检查是否要进行任何恢复(如果有的话)
  • 当不需要恢复或恢复成功完成时,实用程序会启动真正的应用程序

使用 .NET,您甚至可以将两者放入一个 EXE...例如使用 ILMerge(免费实用程序)或通过将真实应用程序嵌入为“可嵌入资源”或通过某些商业工具...

这种方式对用户来说没有区别...并且嵌入式 EXE 可以从内存中启动(无需将其提取到文件系统中),因此对于用户而言,在恢复真正完成之前没有任何区别需要...

如果需要有关如何从内存中嵌入和/或启动第二个 EXE 的提示,请告诉我 - 我现在手头没有链接,但可以查找它们。

【讨论】:

    【解决方案2】:

    问题是,如果应用程序失败,应用程序是否仍然能够记录失败以及失败的原因?

    所以我会在启动时记录一个应用启动事件,在关闭时记录一个应用关闭事件。然后,如果应用在启动时没有找到关闭的事件,它会自动进入恢复模式。

    我会直接启动主应用程序,但要非常小心如何初始化,以免应用程序在启动时崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多