.net - 实现恢复模式的策略

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

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

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

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

问题是,如果该应用程序有任何问题(很可能是这样),那么它将根本无法启动。

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

这用第一个想法解决了问题,但是目标计算机非常受限制,并且可能存在部署问题。

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

谢谢

最佳答案

我们解决了以下类似情况:

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

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

    这种方式对用户来说没有什么不同...并且嵌入式EXE可以从内存中启动(无需将其提取到文件系统中),因此对于用户而言,直到真正需要恢复时它才起作用。 。

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

    关于.net - 实现恢复模式的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690921/

    相关文章:

    c# - __MonoCS__ 在单声道 5.0 中不起作用。如何在编译时确定平台?

    javascript - 如果未选中 radio ,则禁用按钮。选中时启用

    objective-c - 循环最多运行一次,(循环增量从不执行)

    c# - MEF 插件依赖项未加载,因为未检查插件目录

    c# - .NET 服务的 user.config 位于何处?

    c# - 性能计数器的值很奇怪

    .net - 如何在 .Net 中正确实现共享内核 (DDD)

    java - 应该为特定的 Web 应用程序选择什么框架?

    architecture - 是什么让我的代码 DDD(领域驱动设计)合格?

    ruby-on-rails - 为什么此 rails 形式找不到正确的路径?