2011-07-20 3 views
1

MAFを使用してユーザー作成のプラグインをロードするWindowsサービスがあります。ここで私はどのように各アドインをロードしているのですか:Windowsサービスホスト内でMAFアドインがクラッシュする問題を適切に処理するにはどうすればよいですか?

​​

すべてのアドインが問題なくロードされます。私が抱えている問題は、アドインの品質を制御できず、時にはクラッシュし、サービス全体が停止することです。アドインから出てくるエラーを適切にキャッチしてサービスをクラッシュさせない方法がありますか?

答えて

0

アドインを個別のAppDomainsにロードしたり、別のプロセスにロードしたりすることもできます。 AppDomain.UnhandledExceptionを使用して、失敗したアドインに警告することもできます。これは失敗しますが、途中で警告が表示されます。

この回答を確認してください:Good Architecture/Library For Robust Plugin/Addon Management

3

例外処理については、System.AddInチームのブログからこれらの記事を見て、インを追加します。

http://blogs.msdn.com/b/clraddins/archive/2007/05/01/using-appdomain-isolation-to-detect-add-in-failures-jesse-kaplan.aspx

http://blogs.msdn.com/b/clraddins/archive/2007/05/03/more-on-logging-unhandledexeptions-from-managed-add-ins-jesse-kaplan.aspx

基本的に安全であるための唯一の方法であるとアドインを別のプロセスでアクティブにします。これは簡単ですMAFはそうする方法を提供しますが、あなたが想像できるように、それはパフォーマンスの点で高価です。

異なるアプリケーションドメインでアドインをアクティブ化しても、アドインがホストをクラッシュさせないことは保証されません。アドインによって作成されたスレッドによって処理されない例外が発生した場合、ホストはクラッシュします。

私はこの質問が少し古いことを知っていますが、他の誰かがこの情報を見つけることができます。

関連する問題