2011-04-30 38 views
5

我一直在阅读很多关于System.AddIn(又名托管加载项框架)的内容。它允许您以不同的隔离模式激活加载项,包括单独的AppDomain或单独的进程。通过System.AddIn和进程隔离实现应用程序可靠性

我发现的大多数文章都暗示过程隔离可以用来实现应用程序可靠性,其中加载项可能会因未处理的异常而崩溃,但应用程序不会崩溃并且可以卸载违规加入并继续前进。

我还没有找到一篇文章,确切地说明了如何做到这一点。我一直在试图弄清楚通过试验和错误,但到目前为止我所尝试的一切,主机应用程序崩溃,如果加载项引发未处理的异常。每个加载项都在自己的进程中运行,但似乎还有更多我不明白的难题。

是否有可能使用System.AddIn来创建一个可以在其加载项之一中未经处理的异常生存的主机?是否有代码示例或文章将它们拼出来?如果这对于System.AddIn来说是不可能的,那么在.NET应用程序中是否还有另一种架构可以支持这种架构呢?

回答

0

您是否找到this文章?

让您的加载项运行在不同的AppDomain中,并侦听此域中引发的未捕获的异常。

+3

是的,我确实读过。该文章描述了一种*日志*的方式,该插件已经杀死了您的应用程序,但它不允许您将应用程序从死亡中保存。从.NET 2.0开始,进程中的任何AppDomain中的任何未处理的异常都将终止整个进程。 AFAIK你必须使用单独的进程来保护应用程序免受崩溃加载项。 – RationalGeek 2011-05-01 12:34:02

相关问题