实施恢复模式的策略

时间:2011-07-14 09:12:46

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

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

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

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

这个问题是,如果应用程序出现任何问题,那么它很可能无法启动。

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

这解决了第一个想法的问题,但目标计算机已被锁定,可能存在部署问题。

是否还有其他策略来实施恢复模式?

由于

2 个答案:

答案 0 :(得分:0)

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

因此,我会在启动时记录应用启动事件,并在关闭时记录应用关闭事件。然后,如果在启动时没有找到关闭的事件,应用程序可以自动进入恢复模式。

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

答案 1 :(得分:0)

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

  • 使“恢复模式实用程序”成为始终由用户启动的实用程序
  • “恢复模式实用程序”检查是否有任何恢复(如果是这样)
  • 当无法恢复或恢复成功完成时,实用程序将启动真实应用程序

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

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

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