2011-04-30 25 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

相關問題