使用System.AddIn和进程隔离实现应用程序可靠性

Rat*_*eek 5 .net add-in system.addin

我一直在阅读很多关于System.AddIn(又名Managed Add-in Framework)的文章.它允许您以不同的隔离模式激活加载项,包括单独的AppDomain或单独的进程.

我发现的大多数文章暗示了进程隔离可用于实现应用程序可靠性这一事实,其中加载项可能会因未处理的异常而崩溃,但应用程序不会崩溃并且可以卸载有问题的加载项和继续.

我还没有找到一篇文章,其中确实说明了如何做到这一点.我一直试图通过试验和错误来解决,但到目前为止,我尝试过的所有内容,如果加载项抛出未处理的异常,主机应用程序崩溃.我让每个加载项都在自己的进程中运行,但似乎有更多我不理解的难题.

是否可以使用System.AddIn创建一个主机,该主机可以在其中一个加载项中处理未处理的异常?是否有代码示例或文章在某处拼写出来?如果使用System.AddIn无法做到这一点,是否有另一种架构可以在.NET应用程序中实现这一点?

Pet*_*sen 0

你找到这篇文章了吗?

您让您的外接程序在不同的 AppDomain 中运行,并侦听此域中引发的未捕获的异常。

  • 是的,我确实读过。该文章描述了一种“记录”哪个加载项杀死了您的应用程序的方法,但它不允许您使应用程序免于死亡。从 .NET 2.0 开始,进程内任何 AppDomain 中的任何未处理的异常都会终止整个进程。AFAIK,您必须使用单独的进程才能保护应用程序免受加载项崩溃的影响。 (3认同)