質問

既存のVB6 ActiveX exeを複製するビューを使用して、シンプルなC#リモートサーバー/クライアントを作成しました。

クライアントは、サーバーがアクティブ化されたSingletonオブジェクトを正しく作成します。オブジェクトは非常に単純で、1つのプロパティ - カウントです。実行する各クライアントはオブジェクトを作成し、カウントを増加させます。

SIMPLE-複数のクライアントはそれぞれ同じSimpletonオブジェクトを使用しており、それぞれがCountプロパティを増やすことができます。

ただし...クライアントを長期間開いたままにしておくと、たとえば、数分など、クライアントがオブジェクトのカウントプロパティを増やした場合、突然、すべてのクライアントでカウントプロパティがゼロに初期化されました。クライアントが開いたときに、オブジェクトがサーバーから一度だけ取得されたにもかかわらず、リモートオブジェクトが破壊され、再作成されたかのようです。

あらゆる考えが高く評価されています、

MMに感謝します

役に立ちましたか?

解決

リモートオブジェクトの寿命をオーバーライドする必要があると思います。

public override object InitializeLifetimeService()
    {
        return null; //remote object lease time forever
    }

MarshalbyRefobjectを継承するクラスにそれを配置します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top