문제

기존 VB6 ActiveX EXE를 복제하는 관점에서 간단한 C# 리모 팅 서버/클라이언트를 만들었습니다.

클라이언트는 서버 활성화 된 싱글 톤 객체를 올바르게 만듭니다. 객체는 하나의 속성 인 카운트를 갖는 매우 간단합니다. 실행되는 각 클라이언트는 객체를 생성하고 카운트를 증가시킵니다.

간단한 - 여러 클라이언트가 각각 동일한 단순한 객체로 작업하고 있으며 카운트 속성은 각각으로 증가 할 수 있습니다.

그러나 ... 클라이언트를 오랫동안 열어두면 (예 : 몇 분) 클라이언트가 객체의 카운트 속성을 증가시킬 때 갑자기 카운트 속성이 모든 클라이언트에서 0으로 초기화되었습니다. 마치 클라이언트가 열릴 때 서버에서 한 번만 검색되는 개체에도 불구하고 원격 객체가 파괴되고 재현 된 것처럼 보입니다.

모든 생각은 감사합니다.

감사합니다 MM

도움이 되었습니까?

해결책

원격 객체의 수명을 무시해야한다고 생각합니다.

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

MarshalbyRefobject를 물려받은 수업에 배치하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top