0

回答が必要な質問 :

  1. クライアント側 ServicedComponent のファイナライザーは、ServicedComponent.DisposeObject または Dispose を呼び出しますか?

  2. クライアントでの使用に関連して、com サーバーでどのよう破棄 (メモリの解放) が発生する必要がありますか?

  3. 基本的に - メモリが解放されていないため、COM サーバーのプロセス サイズ (メモリ) の 2 ギガ制限に達しています - 明示的に Dispose を呼び出すか、クライアントで using ステートメントを使用するソリューションですか?

4

1 に答える 1

1

あなたは間違いなく、Disposeまたは ServicedComponent.DisposeObjectクライアント側で呼び出す必要があります。Microsoft は、「DisposeObject よりも Dispose デザイン パターンを使用することをお勧めします」と述べています。

COM+ で正確に何が起こっているかは、いくつかの要因によって異なります。

  • アプリケーションはライブラリ アプリケーションかサーバー アプリケーションか
  • オブジェクト プーリングが使用されているか
  • JIT が使用されているか

コールが処理されていない場合、リース時間が発生する可能性があります。 『Understanding Enterprise Services (COM+) in .NET』は、私が読んだ中で最高の COM+ 記事の 1 つですが、2002 年に書かれたものなので、まだ 100% 正確かどうか疑問に思っています。

于 2010-06-17T04:54:19.960 に答える