-2

以前の投稿Tridion 2009 Template Publishing Failureを参照してください。そこでは、大量公開中にシステムが明らかにランダムにクラッシュしたことを説明しました。

XSLTMediator を使用しており、すべてのテンプレートはTemplateBaseソリューションに基づいています

このエラーはガベージ コレクション / COM+ に関連している可能性があるとのことですが、これはちょっとしたニシンだと思います。TemplateBase ソリューションIDisposableは、すべての GC/COM+ の厄介さを処理する必要があることを明示的に実装していますか? (VBScript の Set obj = Nothing の時代とは異なり、メモリ リークを回避できません)!

ありがとう。

4

2 に答える 2

2

詳細なデバッグを行う必要があるようです。このトピックに関する質の高い情報源の 1 つは、Tess Ferrandez のブログです。

于 2012-06-22T13:17:44.030 に答える
-2

ここでいくつかの考慮事項があります。

1) Marshal.ReleaseComObject を使用して Tridion COM オブジェクトを解放しますが、参照カウンターが 0 になるまで一度だけ呼び出しません。

while (Marshal.ReleaseComObject(component) > 0);

2) COM オブジェクトを関数のパラメーターとして渡さないでください。

3) COM オブジェクトをクラス内のフィールドとして宣言しないように、できるだけ宣言しないでください。

4) WeakReferences の使用を検討してください。弱参照は、オブジェクトをすぐに GC の準備ができているとマークします。.Net GC はバックグラウンド スレッドで実行され、いつ実行されるか正確にはわかりませんすでに収集されている場合は、弱参照を再度インスタンス化する必要があります。

于 2012-06-25T19:12:48.453 に答える