CORRECÇÃO: Um aplicativo baseado em .NET Framework 2.0 SP2 ou um aplicativo baseado em .NET Framework 3.5 SP1 não descarta corretamente objetos de identificador seguro que foram criados pelo objeto WindowsIdentity

Aplica-se A
.NET Framework 3.5 Service Pack 1

Sintomas

Você tem um aplicativo baseado no Microsoft .NET Framework 2.0 Service Pack 2 (SP2) ou um aplicativo baseado no Microsoft .NET Framework 3.5 Service Pack 1 (SP1) que usa a classe WindowsIdentity. Quando você descarta o objeto WindowsIdentity, as instâncias do objeto SafeTokenHandle e do objeto SafeLocalAllocHandle criadas pelo objeto WindowsIdentity são enfileiradas incorretamente para finalização.

Se você usar o comando !finalizequeue no WinDbg, verá que há um aumento no comprimento da fila de finalização. Quando o comprimento da fila de finalização aumenta, o desempenho diminui.

Causa

Esse problema ocorre porque os métodos Dispose do objeto SafeTokenHandle e o objeto SafeLocalAllocHandle não chamam o GC. Método SuppressFinalize.

Resolução

Informações sobre substituição de correção

O hotfix que corresponde a KB967615 foi substituído pelo KB981574 de hotfix, que contém todas as correções que foram incluídas anteriormente no KB967615. Deve utilizar a KB981574 de correção para corrigir os problemas descritos no KB967615. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

981574 O ecrã inicial permanece aberto mais tempo do que o habitual quando tenta iniciar o Excel num computador que tenha o .NET Framework 3.5 SP1 instalado

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".