Pergunta

Eu criei um servidor/cliente remoto C# simples com a visualização de replicar um exex existente do VB6 ActiveX.

O cliente cria um objeto Singleton ativado por servidor corretamente. O objeto é apenas muito simples ter a propriedade - uma contagem. Cada cliente que executa cria o objeto e incrementa sua contagem.

Simples - vários clientes estão trabalhando com o mesmo objeto Simpleton e a propriedade Count pode ser incrementada por cada um.

No entanto ... se eu deixar um cliente aberto por um período de tempo - digamos, por exemplo, alguns minutos - quando o cliente incrementa a propriedade de contagem do objeto, de repente a propriedade da contagem foi inicializada para zero - em todos os clientes. É como se o objeto remoto tivesse sido destruído e recriado, apesar do objeto apenas ser recuperado do servidor uma vez - quando o cliente abrir.

Quaisquer pensamentos apreciados,

Obrigado MM

Foi útil?

Solução

Eu acredito que você precisa substituir a vida útil do objeto remoto:

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

Coloque isso na sua classe que herda o marshalbyRefobject

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top