Acabamos resolvendo o problema em nosso ambiente, removendo o Integrated Security, e especificando o ID do usuário e a senha na cadeia de conexão. Nunca encontrei a causa raiz.
Temos o MSSQL 2008 R2 rodando no windows 2008 r2 sendo atingido por 2 servidores web r2 server 2008 rodando asp.net. Ambos são unidos a um domínio de diretório ativo e usam a autenticação integrada para se conectar ao sql server. O pool de aplicativos do IIS tem a configuração de nome de usuário / senha nele. Isso tem funcionado perfeitamente no último ano.
Recentemente, queríamos criar novos servidores da Web e eu configurei um novo Windows 2012 R2 executando exatamente o mesmo site e configurei o pool de aplicativos do IIS com o mesmo nome de usuário / senha. O site se conecta e funciona muito bem quando estou fazendo meus testes. Mas assim que eu trago alguma carga real para o servidor, vejo o IIS começar a travar e solicitar o início do empilhamento.
Eu peguei um despejo de memória e usei a nova análise DebugDiag 2.0 nele e vi que as solicitações estavam pendentes na abertura de uma conexão sql:
This thread is trying to open a data base connection
The connection String is Data Source=10.81.73.66;Failover Partner=10.81.73.72;Initial Catalog=XXXX;Integrated Security=True;Max Pool Size=6000;Connect Timeout=30;Network Library=dbmssocn;Application Name=EntityFrameworkMUE and the connection timeout is set to be 30 seconds.
Dentro da análise, vejo algumas exceções:
Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. This failure occured while attempting to connect to the Principle server. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3342; handshake=0;
Alguma idéia sobre o que tentar?
Acabamos resolvendo o problema em nosso ambiente, removendo o Integrated Security, e especificando o ID do usuário e a senha na cadeia de conexão. Nunca encontrei a causa raiz.
Paul,
É bem possível que o TCP / IP esteja habilitado para o endereço IPv4 do servidor SQL, mas não o IPv6, e seus novos servidores estejam tentando falar em IPv6.
Tente ativar o IPv6 no servidor SQL.
No Gerenciador de Configuração do SQL Server