应用程序恢复

时间:2008-12-10 15:42:19

标签: .net windows-vista

您是否在vista中使用了Application Recovery API?

http://msdn.microsoft.com/en-us/library/aa373347(VS.85).aspx

您觉得它们可靠且易于使用吗?

我正在阅读一些文档,看起来我自己可能是一个更好的方法,因为我可以使我的解决方案与XP兼容。有没有人自己写过?本机方法可以提供什么,不能轻易手动复制?编写此类解决方案有哪些潜在的方法,我觉得我可能需要运行后台服务来监控应用程序的运行状况,这是唯一的方法吗?

2 个答案:

答案 0 :(得分:2)

如果您描述为什么需要监控它会很有帮助。

没有GUI,它是无人值守的吗?然后,您可以改为创建Windows服务。 XP中已有服务的重启选项。

它是一个GUI应用程序,即使用户不在,它也能提供一些后台服务吗?考虑将其分为Windows服务(需要一直运行)和GUI应用程序,它可能会崩溃而不会影响服务操作。

或者您正在编写一个“信息亭”应用程序,不能依赖用户重新启动它?

您可以编写一个小的“包装器”应用程序,只需启动您的实际应用程序并等待它退出。当它退出时,检查例如退出代码,以决定是否经常崩溃或退出。

要监视应用程序挂起,请让您的实际应用程序定期“Ping”包装器(使用计时器)。如果包装器在一段时间内没有收到ping,它可能会终止并重新启动实际应用程序。

由于包装纸很小,所以它崩溃的风险也很低。但如果这对你来说是一个问题,真正的应用程序可能会反过来监视包装器。

答案 1 :(得分:0)

唯一的方法是让服务监控应用程序。

原因是如果应用程序有一个真正致命的错误,应用程序本身无法处理,那么它之外的东西必须执行恢复操作。

后台服务可以使用WMI(适用于XP,Vista等)来监控应用程序。当它开始时,它使用了多少内存,何时关闭等等。