terça-feira, 15 de julho de 2008

Erro no IIS 6.0 - bad request(request header too long)

Semana passada tive um problema na empresa onde trabalho referente ao erro
"bad request(request header too long)", sempre que alguns usuários tentavam acessar um site da intranet. Este erro só foi possível ser visualisado quando se desabilita a opção "Mostrar mensagens de erro http amigáveis"

IE 6.0 e 7.0


Verificando os LOGs do IIS (C:\windows\system32\LogFiles\W3SVC1), notei as seguintes entradas com o erro http 400:

2008-07-09 18:05:19 192.168.1.150 POST /xxxxx/xxxxxx/xxxxxx/programa.asp acao=l 80 DOMINIO\USUARIO1 192.168.2.35 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+2.0.50727) 400 0 64 15

2008-07-09 18:00:02 192.168.1.150 POST /xxxxx/xxxxxx/xxxxxx/programa.asp acao=l 80 DOMINIO\USUARIO2 192.168.4.143 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1) 400 0 64 15

Este problema é devido ao tamanho do token de autenticação do usuário, a autenticação Kerberos falha e o erro acima é retornando.

Após muito "penar", a solução foi encontrada, bastando apenas criar duas chaves de registro no servidor WEB.

Run>Regedit

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters:

Name: MaxFieldLength
Type: DWORD
Value: 65534 (decimal)

Name: MaxRequestBytes
Type: DWORD
Value: 1049160 (decimal)

Após este procedimento é necessário reiniciar o servidor.