CORRECÇÃO: Você não pode acessar tabelas que são usadas em uma transação do SQL Server se você finalizar o thread que executa a transação antes da conclusão da transação no .NET Framework 2.0

Traduções deste artigo Traduções deste artigo
ID do artigo: 944100 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Considere o seguinte cenário. Criar um aplicativo que se baseia o .NET Framework 2.0. No aplicativo, você pode usar um objeto SqlConnection para abrir uma conexão com o Microsoft SQL Server. Executar uma transação na conexão. No entanto, antes da transação é concluída, você chamar o método de anulação do thread que executa a transação. Nesse cenário, uma consulta em uma tabela que é usada na transação não pode concluir com êxito.

Esse problema pode ocorrer se as seguintes condições forem verdadeiras:
  • O aplicativo é um aplicativo da Web.
  • A transação demora muito para terminar.
Esse problema não não no .NET Framework 1.0 ou no .NET Framework 1.1.

Esse problema também ocorre no .NET Framework 2.0 com Service Pack 1 (SP1).
Para obter mais informações sobre um hotfix que corrige esse problema no .NET Framework 2.0 com Service Pack 1, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
948864CORRECÇÃO: Você não pode acessar tabelas que são usadas em uma transação do SQL Server se você finalizar o thread que executa a transação antes da conclusão da transação no .NET Framework 2.0 Service Pack 1

Causa

Esse problema ocorre porque o .NET Framework 2.0 não limpar o objeto SqlConnection. As transações que gerencia o objeto SqlConnection ainda estão ativas. Portanto, essas transações mantêm bloqueios em tabelas ou em linhas da tabela até que o aplicativo sai.

Quando um aplicativo da Web usa um objeto SqlConnection para executar uma transação, chamadas de Internet Information Services (IIS) o método de anulação do thread que executa a transação se o tempo de transação excede o valor da propriedade HttpRuntimeSection.ExecutionTimeout do IIS. Portanto, essa transação mantém bloqueios em tabelas ou em linhas da tabela até que você reinicie o pool de aplicativos.

Observação Por padrão, o valor da propriedade HttpRuntimeSection.ExecutionTimeout é 90. Esse valor representa 90 segundos.

Resolução

Informações sobre o hotfix

Um hotfix com suporte foi disponibilizada pela Microsoft. No entanto, destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do .NET Framework 2.0 que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Microsoft Customer Atendimento para obter o hotfix. Para obter uma lista completa de telefones do serviço de suporte a clientes da Microsoft e informações sobre os custos de suporte, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

Pré-requisitos

Não há nenhum pré-requisito para esse hotfix.

Requisitos de reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix.

Informações sobre a substituição do hotfix

Esse hotfix não substitui outros hotfixes.

Informações sobre o arquivo

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
O .NET Framework 2.0, versões com base em 86 x
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.Data.dll2.0.50727.9482,903,55226 De outubro de 200703: 22x 86
O .NET Framework 2.0, versões com base em 64 x
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.Data.dll2.0.50727.9482,969,60025 De outubro de 200722: 49x 64
System.Data.dll2.0.50727.9482,903,55226 De outubro de 200703: 22x 86
O .NET Framework 2.0, versões de arquitetura Itanium
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.Data.dll2.0.50727.9483,111,93626 De outubro de 200700: 05IA-64
System.Data.dll2.0.50727.9482,903,55226 De outubro de 200703: 22x 86

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para obter mais informações sobre problemas relacionados, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
821268Contenção, desempenho ruim e travamentos quando você faz solicitações de serviço da Web de aplicativos ASP.NET
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 944100 - Última revisão: terça-feira, 15 de abril de 2008 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
Palavras-chave: 
kbmt kbexpertiseadvanced kbexpertiseinter kbpubtypekc kbqfe kbfix KB944100 KbMtpt
Tradução automática
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.
Clique aqui para ver a versão em Inglês deste artigo: 944100

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com