A utilização de memória do sistema e as contagens de identificador aumenta mais do que poderá esperar quando a aplicação contém componentes que derivam da classe System.EnterpriseServices.ServicedComponent

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 312118
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sintomas
Nota Este artigo faz referência à seguinte espaço de nomes Microsoft .NET Framework Class Library:
System.EnterpriseServices.ServicedComponent
Quando executa uma aplicação que contém componentes que são derivadas do System.EnterpriseServices.ServicedComponent , a utilização de memória do sistema pode aumentar a mais de 60 por cento da memória disponível. Por exemplo, se executar uma aplicação de ASPX, poderá aumentar a utilização de memória do sistema. Identificador de conta também pode aumentar mais do que o previsto. Utilização elevada da CPU poderá ser indicada no Gestor de tarefas do Windows enquanto o valor Necessário/seg mantém-se a um nível razoável. Se examinar pilhas geridas e não geridas pilhas, localizar sem provas de fugas de memória ou de fugas de identificador. Quando Object.Finalize pede parar, a utilização da memória e o identificador eventualmente correspondem aos níveis mais razoáveis.
Causa
Este problema poderá ocorrer se a versão actual do common language runtime estiver limitada a um módulo de Finalizador. Se existirem muitos threads de trabalho manipular objectos finalizable geridos, o thread de finalizadores pode estar. Neste cenário, o thread de finalizadores pode estar especialmente caso trabalho significativo em finalizadores de cada objecto. Componentes de serviço poderão ficar vulneráveis para este problema de design porque são mantidas alças activo baseia o contexto de objecto do COM +. Isto também acontece de outros objectos geridos com finalizadores complicados.
Resolução
Para resolver este problema, siga comuns idioma runtime codificação padrão chamando o método de venda/abate e o objecto a venda/abate quando terminar com os objectos geridos que suportam IDisposable . Componente do serviço é uma classe gerida que suporta IDisposable .
kbreadme

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 312118 - Última Revisão: 12/07/2015 08:08:37 - Revisão: 7.2

Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbmt kbprb kbreadme KB312118 KbMtpt
Comentários