Entrar

Erro: Passar grandes quantidades de dados em .NET Remoting chamadas faz com que uma exceção inesperada ocorrer

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

322975
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Você pode usar o .NET Remoting para permitir que instâncias de qualquer tipo que pode ser serializado para ser passados como parâmetros de método entre o cliente e os aplicativos de servidor. No entanto, se a instância do tipo que é passada é muito grandes (dezenas de megabytes), o cliente remoto consome grandes quantidades de memória virtual e, em seguida, gera exceções inesperadas. As exceções podem ser OutOfMemoryException exceção ou SocketException exceção. O encargo de confirmação, como visto no Gerenciador de tarefas também é muito alto.
Causa
Isso é devido a um erro no sistema de .NET Remoting.
Resolução
Para contornar este problema, passe menores quantidades de dados com cada chamada remoto. Você também pode passar um objeto de fluxo como um parâmetro do método. fluxo objetos herdam MarshalByRefObject . Você pode usar o objeto Stream para recuperar dados em partes menores.
Situação
A Microsoft confirmou que este é um bug no Microsoft produtos que estão listados no início deste artigo.
Mais Informações
Quando a classe abaixo é hospedada em um host remoto e o método é chamado por um cliente remoto, o problema ocorre. O fragmento de código a seguir demonstra o problema:

	public class MBRClass : MarshalByRefObject	{		public byte[] GetBigByteArray ()		{			byte[] byteArray = new byte[60000000] ;			return byteArray ;		}	}				

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 322975 - Última Revisão: 02/27/2014 07:43:46 - Revisão: 4.4

  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
  • kbnosurvey kbarchive kbmt kbbug kbremoting KB322975 KbMtpt
Comentários