CORRECÇÃO: Utilizador não consegue aceder tabelas que são utilizadas numa transacção do SQL Server se terminar o thread que executa a transacção antes de termina a transacção no .NET Framework 2.0

Traduções de Artigos Traduções de Artigos
Artigo: 944100 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Considere o seguinte cenário. Criar uma aplicação que se baseia o .NET Framework 2.0. Na aplicação, utilize um objecto SqlConnection para abrir uma ligação ao Microsoft SQL Server. Executar uma transacção na ligação. No entanto, antes de terminar a transacção, chamar o método Abort do thread que executa a transacção. Neste cenário, uma consulta contra uma tabela que é utilizada numa transacção não é concluída com êxito.

Este problema poderá ocorrer se se verificarem as seguintes condições:
  • A aplicação é uma aplicação Web.
  • A transacção demora muito tempo para concluir.
Este problema não e não no .NET Framework 1.0 ou o .NET Framework 1.1.

Este problema também ocorre no .NET Framework 2.0 com Service Pack 1 (SP1).
Para obter mais informações sobre uma correcção que corrige este problema no .NET Framework 2.0 com Service Pack 1, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
948864CORRECÇÃO: Utilizador não consegue aceder tabelas que são utilizadas numa transacção do SQL Server se terminar o thread que executa a transacção antes de termina a transacção no .NET Framework 2.0 Service Pack 1

Causa

Este problema ocorre porque o .NET Framework 2.0 não cópia limpa o objecto SqlConnection. As transacções que gere o objecto SqlConnection ainda estão activas. Assim, estas transações mantém bloqueios tabelas ou as linhas da tabela até a sai da aplicação.

Quando uma aplicação Web utiliza um objecto SqlConnection para executar uma transacção, chamadas de serviços de informação Internet (IIS) o método Abort do thread que executa a transacção se a hora de transacção exceder o valor da propriedade HttpRuntimeSection.ExecutionTimeout do IIS. Por conseguinte, esta transação mantém bloqueios tabelas ou as linhas da tabela até que reinicie o agrupamento de aplicações.

Nota Por predefinição, o valor da propriedade HttpRuntimeSection.ExecutionTimeout é 90. Este valor representa 90 segundos.

Resolução

Informações sobre a correcção

Uma correcção suportada está agora disponível da Microsoft. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do .NET Framework 2.0 que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone de suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

Pré-requisitos

Existem não pré-requisitos para esta correcção.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

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

Esta correcção não substitui quaisquer outras correcções.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item data e hora no painel de controlo.
O .NET Framework 2.0, x 86 versões
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
System.data.dll2.0.50727.9482,903,55226 De Outubro de 200703: 22x 86
O .NET Framework 2.0, versões baseadas em 64 x
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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 arquitectura Itanium
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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

Ponto Da Situação

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

Mais Informação

Para obter mais informações sobre problemas relacionados, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
821268Contenção, desempenho fraco e bloqueios quando efectua pedidos de serviço Web de aplicações do ASP.NET
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 944100 - Última revisão: 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 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: 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