CORRECÇÃO: Uma falha na ligação pode ser relatada mesmo que o servidor de base de dados está realmente disponível quando tenta ligar a uma base de dados utilizando o objecto SqlConnection no ADO.NET 2.0

Sintomas

Quando tenta ligar a uma base de dados utilizando o objecto SqlConnection no Microsoft ADO.NET 2.0, uma falha na ligação pode ser relatada mesmo que o servidor de base de dados está realmente disponível. Este problema é mais visível quando se verificam as seguintes condições:

  • O servidor de base de dados foi indisponível durante pelo menos um minuto.

  • A aplicação cliente tentou ligar ao servidor de base de dados durante esse período.

Causa

Este problema ocorre devido ao comportamento que ocorre quando as tentativas de ligação anterior para o servidor que esteja a executar o Microsoft SQL Server falhar. O pool de conexões SqlClient internamente poderá optimizar o número de novas tentativas de ligação ao servidor. Este processo destina-se a ocorrência de um curto período de tempo. Durante este tempo, o pool de conexões relatórios automaticamente o último erro ocorreu em vez de fazer uma tentativa de ligação ao servidor. Decorrido o período de tempo, o seguinte pedido de ligação da aplicação cliente atinge uma verdadeira ligação ao servidor que esteja a executar o SQL Server. Nota Por vezes, o período de tempo pode crescer muito grande. Este problema depende por quanto tempo o servidor de base de dados está disponível.

Resolução

Para resolver este problema, transfira o ficheiro adequado para o computador:

Para um computador baseado em x86

o ficheiro seguinte está disponível para transferência a partir do Microsoft Download Center:http://download.microsoft.com/download/2/C/5/2C5BCDC9-3241-443A-9F96-4E0B0EDFA727/NDP20-KB916002-x86.exe

Para um computador baseado em x64

o ficheiro seguinte está disponível para transferência a partir do Microsoft Download Center:http://download.microsoft.com/download/D/3/9/D39C79DF-4158-45DF-9031-92C52AB0ED19/NDP20-KB916002-x64.exe

Para computadores baseados em Itanium

o ficheiro seguinte está disponível para transferência a partir do Microsoft Download Center: http://download.microsoft.com/download/0/0/3/00392DD3-5B4F-4D99-94E8-6827B8F8D7EF/NDP20-KB916002-ia64.exe Para mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

119591 como obter ficheiros de suporte da Microsoft a partir de serviços onlineA Microsoft analisou este ficheiro quanto à presença de virus. A Microsoft utilizou o software de deteção de vírus mais atual, que estava disponível na data em que o ficheiro foi publicado. O ficheiro está armazenado em servidores com segurança melhorada que ajudam a impedir alterações não autorizadas ao ficheiro.

Solução

Para contornar este problema, utilize os métodos ClearPool ou ClearAllPools do objecto SqlConnection para repor o pool de conexões.

Estado

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

Mais Informações

Depois de aplicar esta correcção, um pequeno atraso pode continuar a ocorrer antes da aplicação cliente pode aceder com êxito para o servidor de base de dados quando o servidor de base de dados recupera de uma falha. Normalmente, este atraso não deve ter mais de 60 segundos, independentemente de quanto tempo o SQL Server já ter sido indisponível. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

824684Descrição da terminologia padrão utilizada para descrever as atualizações de software da MicrosoftPara mais informações sobre a classe SqlConnection , visite o seguinte Web site da Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(VS.80).aspxEsta correcção está incluída no pacote de correcção mesmo que a correcção no seguinte artigo da Base de dados de conhecimento da Microsoft:

CORRIGIR 912151 : A ligação poderá exceder o tempo limite antes da primeira tentativa para ligar ao servidor de parceiro de activação pós-falha quando tenta ligar a uma base de dados do SQL Server 2005 espelhado utilizando uma aplicação baseada no ADO.NET 2.0

CORRIGIR 912731 : ligado quando ADO.NET uma aplicação utiliza o espaço de nomes System.Data.SqlClient, a aplicação poderá detectar utilização da CPU elevada e poderá deixar de responder

CORRIGIR 912732 : poderá ocorrer um erro quando inicia uma nova transacção no ADO.NET 2.0 numa ligação que está aberta uma base de dados do SQL Server 2005

CORRIGIR 913177 : poderá receber uma mensagem de erro quando uma aplicação ligada ADO.NET utiliza a classe SqlBulkCopy

CORRIGIR 913764 : mensagem de erro quando tenta executar uma consulta UNION ALL ou para chamar o método DeriveParameters: "erro fatal de ligação interno"

CORRIGIR 913765 : SqlException uma excepção pode ocorrer quando chamar um dos métodos de execução na instância da classe SqlCommand numa aplicação ADO.NET 2.0

CORRIGIR 913766 : coluna de data/hora de A que não contém quaisquer dados incorrectamente é representada por um campo DateTime. MinValue quando um objecto de conjunto de dados do .NET Framework 2.0 é anular a serialização de um computador cliente

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×