RemotingCallsが共有オブジェクトの作成の原因であるAppDomainでの共有/静的オブジェクトの有効期間について知りたいです。
サーバーにアクセスするための関数のみを使用する、クライアントによってアクティブ化されたオブジェクトを使用するRemotingセットアップを使用しています。リモーティングオブジェクトはシングルトンとして設定されます。
サーバーはチャネルをセットアップし、RemotingConfiguration.Configureを使用して構成ファイルをロードします。
これらのサーバー機能の一部は、サーバー上の静的(vb.netで共有)変数にアクセスして使用します。これらの静的変数の有効期間がわからないので、初めて触れたときに作成されます(静的コンストラクターが実行されます)。ロギングを使用すると、オブジェクトの破棄/ファイナライズが発生するのを確認できません。
リモーティングサーバーに接続してから数分待つと、共有オブジェクトが正常に動作していることがわかります。
質問:
したがって、このリモート設定での静的オブジェクトの予想ライブ時間はどれくらいですか。それらはAppDomainと同じくらい存続しますか、それともRemotingオブジェクトが交換されたときに循環しますか。そして、必要に応じて彼らの寿命を延ばす正しい方法は何ですか?
答え:
静的タイプは、AppDomainがアンロードされるまで最初にアクセスしてから、AppDomainに存在します。したがって、AppDomainが実行されている限り、存続期間を延長する必要はありません。